我在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)
这里发生了什么?
我在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)
这里发生了什么?
如果您同时安装了两个版本,请按以下步骤进行操作。
进入此电脑→右键单击→点击属性→高级系统设置。
您将看到系统属性。从这里导航到高级选项卡-〉单击环境变量。
您将看到用户变量的上半部分和系统变量的下半部分。
检查系统变量,并双击路径(以编辑路径)。
检查Python的路径(您希望运行的Python 2.x或3.x),并将其移到路径列表的顶部。
重新启动命令提示符,现在当您检查Python的版本时,它应该正确显示所需的版本。
py.exe
)与Python文件扩展名相关联,并查找"shebang"注释以指定要运行的Python版本。这允许许多版本的Python共存,并允许Python脚本明确指定要使用的版本(如果需要的话)。如果未指定,则默认使用当前架构(x86或x64)的最新Python版本。可以通过py.ini
文件或PY_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 Launcher,由于它始终在PATH中,因此安装在Windows目录中。script.py
从命令行运行脚本,而不是“python script.py”,否则将运行python
而不是py
。 实际上,最好从PATH中删除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
而无需扩展名。py.exe
启动器通过shebang注释来控制脚本使用的Python版本。 - Mark Tolonenpython.exe
与文件扩展名关联,因此最后安装的注册选项获胜。Python 3.3通过Python Launcher改变了这一点,并且可以在脚本中使用注释来明确指定任何Python版本。 - Mark Tolonen运行 'py' 命令将告诉您正在运行的版本。如果您当前正在运行 3.x 并且需要切换到 2.x,则需要使用开关 '-2'
py -2
如果您需要从Python 2.x切换到Python 3.x,则必须使用“-3”开关。
py -3
如果您想将 Python 3.x 设置为默认版本,那么您需要创建环境变量 'PY_PYTHON' 并将其值设置为 3。py -2 test.py
...然后默认使用 python test.py
如果是基于 Python 3 的代码。 - sasoripy -0
查看可用版本列表。然后从列表中选择,例如 py -3.10
,如果你的列表中有 3.10
版本。 - pdspy
而不是python
。
- 将“打开方式...”资源管理器默认程序关联设置为C:\Windows\py.exe
- 设置命令行文件扩展名关联使用Python Launcher for Windows。(这将使输入py
变成可选项)。在管理员cmd
终端中运行以下命令:
ftype Python.File="C:\Windows\py.exe" "%L" %*
ftype Python.NoConFile="C:\Windows\pyw.exe" "%L" %*
PY_PYTHON
环境变量来设置首选默认版本 (例如:PY_PYTHON=3.11)
)。你可以通过输入py
来查看默认Python版本。还可以设置PY_PYTHON3
或PY_PYTHON2
来指定默认Python 3和Python 2版本(如果你有多个版本)。如果您需要运行特定版本的Python,可以使用py -M.m
(其中M
是主要版本号,m
是次要版本号)。例如,py -3
将运行任何已安装的Python 3版本。
使用py -0
列出已安装的Python版本。
作为脚本编写者
在脚本顶部包含一个shebang行,指示所需的Python主要版本号。如果脚本与其他任何次要版本不兼容,请同时包括次要版本号。例如:
#!/usr/bin/env python3
注意:(请参见此问题)如果python3
对您不起作用,请确保您已从Windows商店安装了Python(例如通过winget install --id 9NRWMJP3717K
),因为winget软件包Python.Python.3.11
似乎不包括python3.exe
)。
您还可以使用shebang行指示虚拟环境(请参见下面的PEP 486)。
另请参阅
;
; This is an example of how a Python Launcher .ini file is structured.
; If you want to use it, copy it to py.ini and make your changes there,
; after removing this header comment.
; This file will be removed on launcher uninstallation and overwritten
; when the launcher is installed or upgraded, so don't edit this file
; as your changes will be lost.
;
[defaults]
; Uncomment out the following line to have Python 3 be the default.
;python=3
[commands]
; Put in any customised commands you want here, in the format
; that's shown in the example line. You only need quotes around the
; executable if the path has spaces in it.
;
; You can then use e.g. #!myprog as your shebang line in scripts, and
; the launcher would invoke e.g.
;
; "c:\Program Files\MyCustom.exe" -a -b -c myscript.py
;
;myprog="c:\Program Files\MyCustom.exe" -a -b -c
c:\windows\
下创建了一个 py.ini
文件,其中包含以下内容:[defaults]
python=3
#! python2
。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
python.exe
,用于打开 .py
文件。我在我的Windows 11操作系统上安装了Python版本2.7
、3.7
、3.9
和3.11
,但是之前建议的解决方案都遇到了问题。然而,我找到了一个简单的方法,可以解决这个问题。
首先,让我们了解如何使用py
命令设置默认的Python版本。运行py --help
提供了一些提示,包括引用位于%LOCALAPPDATA%\py.ini
中的py.ini
文件。该文件允许我们指定默认的Python版本。
要设置特定的默认Python版本:
打开文本编辑器或在%LOCALAPPDATA%\py.ini
中创建一个文件。
将以下内容添加到py.ini
文件中:
[defaults]
python=3.7
现在,当您在控制台中运行 py --version
时,它应该显示指定的默认 Python 版本。
请注意以下其他需要考虑的要点:
设置默认 Python 版本的目的:设置特定的默认 Python 版本可以有助于确保与某些依赖项兼容或在项目间保持一致性。
%LOCALAPPDATA%
的位置: %LOCALAPPDATA%
环境变量通常指 C:\Users\<username>\AppData\Local
。如果在该位置不存在 py.ini
文件,则可以手动创建。
python=3.11
,使用 C:\Users\bob>py --version
命令可以获得 Python 3.11.0
版本。不过也有可能我并没有理解你的评论点。 - flydevThis worked for me:
Go to
Control Panel\System and Security\System
选择
Advanced system settings from the left panel
from Advanced tab click on Environment Variables
PYTHONPATH
并设置
C:\Python27\;C:\Python27\Scripts;
或者您需要的版本
您需要重新启动CMD。
如果仍然无法正常工作,您可能希望在PATH变量中仅保留您需要的版本。
python scriptfile.py
。 - martineau