我应该如何在Windows中设置默认Python版本?

155 投票
19 回答
612746 浏览
提问于 2025-04-16 12:21

我在Windows 7上安装了 Python 2.6Python 3.1,并设置了环境变量: path = d:\python2.6

当我在 cmd 里输入 python 时,它显示的是Python版本2.6,这正是我想要的!
但是,当我写了一个批处理文件(bat文件)并运行它时,显示的Python版本却是3.1。

import sys
print (sys.version)

这是怎么回事呢?

19 个回答

82

运行 'py' 命令可以告诉你当前使用的是哪个版本的 Python。如果你现在在用 3.x 版本,但需要切换到 2.x 版本,就需要加上 '-2' 这个选项。

py -2

如果你想从 Python 2.x 切换到 Python 3.x,就需要使用 '-3' 这个选项。

py -3

如果你希望 Python 3.x 成为默认版本,那么你需要创建一个环境变量 'PY_PYTHON',并把它的值设置为 3。

114

Python的安装程序会安装一个叫做Windows Python启动器的程序。这个程序(py.exe)和Python文件的扩展名有关,它会查找一个叫做“shebang”的注释来确定要运行哪个版本的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目录中,因为它总是在PATH环境变量里。

为了让这种关联正常工作,运行脚本时要用命令行输入script.py,而不是“python script.py”,否则会运行python而不是py。其实,最好是把Python的目录从PATH中移除,这样“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而不需要加扩展名。

171

这是在你安装了两个版本的情况下的操作。

首先,打开此电脑,然后右键点击,接着选择属性,再点击高级系统设置

你会看到系统属性的窗口。在这里,找到高级选项卡,然后点击环境变量

在这个界面上,你会看到上半部分是用户变量,下半部分是系统变量

查看系统变量,双击Path(这样可以编辑Path)。

检查你想要运行的Python版本的路径(比如Python 2.x或3.x),并将它移动到列表的最上面

接着重启命令提示符,现在你再检查Python的版本时,它应该会正确显示你需要的版本。

撰写回答