我应该如何在Windows中设置默认Python版本?
我在Windows 7上安装了 Python 2.6
和 Python 3.1
,并设置了环境变量: path = d:\python2.6
。
当我在 cmd
里输入 python
时,它显示的是Python版本2.6,这正是我想要的!
但是,当我写了一个批处理文件(bat文件)并运行它时,显示的Python版本却是3.1。
import sys
print (sys.version)
这是怎么回事呢?
19 个回答
运行 'py' 命令可以告诉你当前使用的是哪个版本的 Python。如果你现在在用 3.x 版本,但需要切换到 2.x 版本,就需要加上 '-2' 这个选项。
py -2
如果你想从 Python 2.x 切换到 Python 3.x,就需要使用 '-3' 这个选项。
py -3
如果你希望 Python 3.x 成为默认版本,那么你需要创建一个环境变量 'PY_PYTHON',并把它的值设置为 3。
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
而不需要加扩展名。
这是在你安装了两个版本的情况下的操作。
首先,打开此电脑,然后右键点击,接着选择属性,再点击高级系统设置。
你会看到系统属性的窗口。在这里,找到高级选项卡,然后点击环境变量。
在这个界面上,你会看到上半部分是用户变量,下半部分是系统变量。
查看系统变量,双击Path(这样可以编辑Path)。
检查你想要运行的Python版本的路径(比如Python 2.x或3.x),并将它移动到列表的最上面。
接着重启命令提示符,现在你再检查Python的版本时,它应该会正确显示你需要的版本。