Batch file 如何在Windows中设置默认Python版本?

Batch file 如何在Windows中设置默认Python版本?,batch-file,windows-7,environment-variables,python-2.6,python-3.1,Batch File,Windows 7,Environment Variables,Python 2.6,Python 3.1,我在Windows7上安装了python2.6和Python3.1,并设置了环境变量:path=d:\python2.6 当我在cmd中运行python时,它会显示python 2.6版,这正是我想要的 但是,当我在bat文件中编写脚本并运行它时,显示的python版本是3.1 import sys print (sys.version) 这里发生了什么?尝试修改windows注册表中的路径(HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentContro

我在Windows7上安装了
python2.6
Python3.1
,并设置了环境变量:
path=d:\python2.6

当我在
cmd
中运行
python
时,它会显示python 2.6版,这正是我想要的
但是,当我在bat文件中编写脚本并运行它时,显示的python版本是3.1

    import sys
    print (sys.version)

这里发生了什么?

尝试修改windows注册表中的路径(HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)


警告:不要破坏注册表:)

Python安装程序将安装。此程序(
py.exe
)与Python文件扩展名关联,并查找“shebang”注释以指定要运行的Python版本。这允许许多版本的Python共存,并允许Python脚本显式指定要使用的版本(如果需要)。如果未指定,则默认为对当前体系结构(x86或x64)使用最新的Python版本。可以通过
py.ini
文件或
py_PYTHON
环境变量自定义此默认值。有关更多详细信息,请参阅

较新版本的Python更新了启动器。最新版本有一个
py-0
选项来列出已安装的python并指示当前默认值

以下是如何从控制台检查启动器是否正确注册:

C:\>assoc .py
.py=Python.File

C:\>ftype Python.File
Python.File="C:\Windows\py.exe" "%1" %*
上面,
.py
文件与
Python.File
类型相关联。
Python.File
的命令行是Python启动器,它安装在Windows目录中,因为它始终位于路径中

要使关联正常工作,请使用
script.py
而不是“python script.py”从命令行运行脚本,否则将运行
python
而不是
py
。事实上,最好从路径中删除Python目录,这样“Python”就不会运行任何东西,也不会使用
py
强制执行

py.exe
也可以使用开关运行,以强制使用Python版本:

py -3 script.py       # select latest Python 3.X version to be used.
py -3.6 script.py     # select version 3.6 specifically.
py -3.9-32 script.py  # select version 3.9 32-bit specifically.
py -0                 # list installed Python versions (latest PyLauncher).
另外,添加
.py;。pyw;。pyc;。pyo
PATHEXT
环境变量,然后命令行可以是
script
,没有扩展名

  • 编辑注册表项
    HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Path\python.exe\default
  • 将默认程序设置为打开
    .py
    文件至
    python.exe

  • 现在Python 3.3已经发布,使用py.exe实用程序最简单,如下所述:

    它允许您使用UNIX风格的指令在脚本文件中指定Python版本。还有命令行和环境变量选项用于控制运行哪个版本的Python

    获取此实用程序的最简单方法是安装Python 3.3或更高版本。

    因此,在我的系统上,我在py.exe所在的
    c:\windows\
    下创建了一个
    py.ini
    文件,包含以下内容:

    [defaults]
    python=3
    

    现在,当您双击.py文件时,它将以新的默认版本运行。现在我只使用Shebang
    #!python2
    在我的旧脚本上。

    使用Windows CMD中的
    SET
    命令临时设置当前会话的默认python

    SET PATH=C:\Program Files\Python 3.5
    

    上面的一切都不起作用,这就是我的作用:

    ftype Python.File=C:\Path\to\python.exe "%1" %*
    
    此命令应在以管理员身份启动的命令提示符下运行


    警告:即使此命令中的路径设置为python35,如果安装了python36,它也会将默认值设置为python36。为了防止出现这种情况,您可以临时将文件夹名称从
    Python36
    更改为
    xxPython36
    ,运行命令,然后删除对Python36文件夹的更改

    运行“py”命令将告诉您正在运行的版本。如果您当前正在运行3.x,并且需要切换到2.x,则需要使用开关'-2'

    py -2
    
    如果需要从Python2.x切换到Python3.x,则必须使用“-3”开关

    py -3
    
    如果希望将Python 3.x作为默认版本,则需要创建环境变量“PY_Python”,并将其值设置为3。

    这对我来说很有效:

    挑选

    Advanced system settings from the left panel
    from Advanced tab click on Environment Variables
    
    在“系统变量”部分中,搜索(如果不存在则创建)

    设定

    C:\Python27\;C:\Python27\Scripts;
    
    或者你想要的版本

    您需要重新启动CMD


    如果仍然不起作用,您可能希望在PATH变量中只保留所需的版本。

    检查系统当前使用的版本:

    python --version
    
    将主文件夹位置(例如C/ProgramFiles)和脚本位置(C/ProgramFiles/Scripts)添加到系统的环境变量中。添加3.x版本和2.x版本

    路径位置在环境变量中排序。如果要使用Python2.x,只需将Python2.x的路径放在第一位,如果要使用Python3.x,只需将3.x放在第一位


    如果您同时安装了这两个版本,则会出现这种情况

    转到
    这台电脑->右键单击->单击属性->高级系统设置。

    您将看到
    系统属性
    。从这里导航到
    “高级”
    选项卡->单击
    环境变量

    您将看到用户变量的上半部分和系统变量的下半部分

    检查
    系统变量
    并双击
    路径
    (编辑路径)

    检查Python的路径(您希望运行Python 2.x或3.x),并将其移动到路径列表的顶部

    重新启动命令提示符,现在当您检查Python的版本时,它应该正确显示所需的版本。

    这对我来说很有用。 如果要使用python3.6,必须将python3.6移到列表顶部

    这同样适用于蟒蛇2.7 如果您想将2.7作为默认值,那么请确保移动python2.7
    PYTHONPATH
    
    C:\Python27\;C:\Python27\Scripts;
    
    python --version
    
    >>> Python 3.6