在Windows 10 cmd

时间:2017-11-24 16:32:58

标签: python windows batch-file cmd environment-variables

我不喜欢其他post。 因为它涉及重命名python可执行文件。

3 个答案:

答案 0 :(得分:1)

我认为支持各种版本的Python以及其他语言的最简单方法是asdf版本管理器。它允许您在全局以及每个项目文件夹中设置Python的版本。这意味着您可以根据您正在使用的文件夹将Python版本设置为动态更改。

asdf version manager

我已经使用Windows近20年了,但我听说Windows 10是基于Ubuntu的Linux子系统。我不知道asdf是否可以使用它,但值得一试。只需使用说明设置asdf up with bash。

答案 1 :(得分:0)

这是我的发现。

步骤1.转到System Properties。点击Environment Variables

步骤2.添加新变量,例如PYTHON_27_HOME

  • PYTHON_27_HOME%ProgramFiles%\Python27\
  • PYTHON_36_HOME%ProgramFiles%\Python36\
  • PYTHON_HOME%PYTHON_27_HOME%

就我而言,PYTHON_27_HOME(Python 2.7)指向C:\Program Files\Python27\。您可以使用自己的python路径替换它。 %PYTHON_HOME%的默认值指向%PYTHON_27_HOME%,这是Python 2.7的路径。这是我的偏好,随意调整。请注意,有32位和64位python。 请使用%PROGRAMFILES%获取C:\Program Files%PROGRAMFILES(X86)%的路径,以获取C:\Program Files (x86)的路径。

步骤3.选择PATH,然后点击EditPATH

步骤4.点击New并添加%PYTHON_HOME%。每次启动命令提示符时,%PYTHON_HOME%都会自动添加到PATH

为了在cmd中切换不同版本的python,这就是诀窍。

步骤5.我使用

创建了一个批处理文件
@echo off
:: Switch Python version
DOSKEY python27=SET PATH=%PYTHON_27_HOME%;%PATH%
DOSKEY python36=SET PATH=%PYTHON_36_HOME%;%PATH%

基本上,它会禁用echo并创建两个别名。在批处理文件中,::之后的任何字符串都是注释。每次调用python27python36时,它都会使用新的Python路径重新导出%PATH%。将其另存为profile.bat。您可以随意命名。

第6步。 搜索regedit(注册表编辑器)。点击Edit> New> String Value。将AutoRun作为Value name,将%USERPROFILE%\profile.bat作为Value data。在这里,请将您的实际路径值设置为我们刚刚创建的profile.bat。因此,每当打开命令提示符时,它会自动加载profile.bat,这会在脚本中创建这两个别名。

步骤7.关闭您正在使用的任何命令提示符,或者只是打开一个新的命令提示符。这是因为您的更改不会影响打开的cmd窗口。环境变化只发生在新的CMD上。

步骤8.验证结果here

如果你使用不同的Java版本,同样的技巧也适用。找到我的javac环境设置here

答案 2 :(得分:0)

TL;DR:使用指向您当前版本的符号链接并将其放在您的路径上。

Linux 有替代命令可以全局切换版本,但我这样做:

  1. C:\Python\Python38C:\Python\Python36 等下安装 Python 变体
  2. 设置您的 PATH 以包含 C:\Python\Current;C:\Python\Current\Scripts
  3. 有一个这样的批处理文件来切换版本:
    @echo off
    echo 1. Python 3.8
    echo 2. Python 3.6   
    set /p ver="Enter Version: "
    
    if [%ver%]==[1] (
        SET FOLDER=C:\Python\Python38
    ) ELSE if [%ver%]==[2] (
        SET FOLDER=C:\Python\Python36
    ) ELSE (
        GOTO end
    )
    
    if exist C:\Python\Current\nul (
        rmdir C:\Python\Current
    )
    
    MKLINK /D C:\Python\Current %FOLDER%
    
    :end

唯一的缺点是 MKLINK(以及批处理文件)需要提升权限