安装了多个 Python 版本:如何为 CMD 和 "Open with" 设置 py.exe(Python Launcher Windows)的默认版本
Multiple Python versions installed : how to set the default version for py.exe (Python Launcher for Windows) for CMD and for "Open with"
简述:
我安装了两个版本的 Python:Python 3.6 和 Python 3.9。
我想使用 Windows 的 Python 启动器打开所有 .py
和 .pyw
(例如:当我双击它们时)。我希望 Windows 的 Python 启动器的默认版本为 Python 3.6,这样没有 shebang 的文件可以使用 Python 3.6 打开。 Python 3.9 应该只用于带有 shebang 的文件 #! python3.9
当我右键单击一个文件时,选择open with
和select C:\Windows\py.exe
,然后默认情况下(没有任何shebang)打开的是Python 3.9 .
当我在 CMD
中键入 py
时,我得到 Python 3.6.5
.
但是如果我双击 C:\Windows\py.exe
控制台是 Python 3.9.5
.
如果我设置 open all .py' to
C:\Windows\py.exe, then if they don't have a sheband they will be started with
Python 3.6.5`?
如何确定
详情:
在安装 Python 3.9 之前,我一直在 运行 上使用 Python 3.6。我还没有将所有包更新到 Python 3.9,所以我希望默认的 Python 是 3.6。对于需要使用 Python 3.9 的脚本,我使用了 shebang #! python3.9
.
所以我想将 Opens with...
默认设置为 C:\Windows\py.exe
,但如果我这样做,我的脚本在 Python 3.9.5
中打开,所以它们失败了。
我已经做过的事情:
我创建了一个 C:\Windows\py.ini
,默认设置为 python=3.6
(与 pyw
相同)。
在路径中,我将 C:\Users\user\AppData\Local\Programs\Python\Python36\
移动到 C:\Users\user\AppData\Local\Programs\Python\Python39
上方。
我已经将另一个环境变量 PY_PYTHON
设置为 PY_PYTHON=3.6
。
我有运行 assoc .py=Python
Windows documentation说The py.exe launcher will automatically select the most recent version of Python you've installed
,所以我重新安装了Python 3.6(在已经安装了Python 3.9之后)但是,仍然是默认的当我用 C:\WINDOWS\py.exe
打开文件时设置为 Python 3.9
ftype | find "Python"
return这个
Python.ArchiveFile="C:\WINDOWS\py.exe" "%L" %*
Python.CompiledFile="C:\WINDOWS\py.exe" "%L" %*
Python.File="C:\WINDOWS\py.exe" "%L" %*
Python.NoConArchiveFile="C:\WINDOWS\pyw.exe" "%L" %*
Python.NoConFile="C:\WINDOWS\pyw.exe" "%L" %*
我在 Windows 10
一旦您安装了 Python 的第二个版本(在本例中为 Python 3.9),如果您仍希望之前的版本(在本例中为 Python 3.6)是默认的,那么你可以这样做:
1) 在CMD
中为py
命令设置默认Python版本
转到 C:\WINDOWS\
并创建 2 个文件 py.ini
和 pyw.ini
这两个文件都应该包含
[默认值]
python=3.6
完成后,如果您在 CMD
中输入 py
,它将打开 Python 3.6 控制台。如果您想要 Python 3.9 控制台,请输入 py -3.9
。要查看默认值,运行 py -0p
并查找 *
Installed Pythons found by py Launcher for Windows
-3.9-64 C:\Users\<user>\AppData\Local\Programs\Python\Python39\python.exe
-3.6-64 C:\Users\<user>\AppData\Local\Programs\Python\Python36\python.exe *
不要再在 CMD
中使用 python
,始终使用带有正确参数的 py
[如@karl-knechtel 的评论所示:如果您有一个活动 venv, using python instead of
py` 将优先考虑 venv 的 Python,这通常是您想要的]:
py -3.9 pip install # will install package for 3.9
py pip install # will install package for 3.6
2) 设置文件双击打开时的默认Python版本
转到 C:\Users\<user>\AppData\Local\Programs\Python\Launcher\
并创建 2 个文件 py.ini
和 pyw.ini
这两个文件都应该包含
[默认值]
python=3.6
右键单击任何 .py
、select open with
,选中 Always use this app...
,一直向下滚动并单击 more app
,再次向下滚动并单击 look for another app...
,然后单击 select C:\WINDOWS\py.exe
完成后,如果文件不包含 shebang,那么它将使用默认的 Python 版本启动,即 3.6
。要使用 Python 3.9
,请将此 #!python3.9
添加到脚本的最顶部
如果你想在设置 open all with...
之前进行测试,你可以在一些测试脚本的最顶部添加这些以查看将使用哪个版本,然后使用 open with
而不检查 use for all
:
应该是3.9
#!python3.9
导入系统
打印(sys.version_info)
输入(“关闭”)
应该是 3.6 因为它会调用默认值
#!python
导入系统
打印(sys.version_info)
输入(“关闭”)
应该是 3.6 因为它会调用默认值
导入系统
打印(sys.version_info)
输入(“关闭”)
应该是 3.9 因为它是最新的 python 3 安装
#!python3
导入系统
打印(sys.version_info)
输入(“关闭”)
简述:
我安装了两个版本的 Python:Python 3.6 和 Python 3.9。
我想使用 Windows 的 Python 启动器打开所有 .py
和 .pyw
(例如:当我双击它们时)。我希望 Windows 的 Python 启动器的默认版本为 Python 3.6,这样没有 shebang 的文件可以使用 Python 3.6 打开。 Python 3.9 应该只用于带有 shebang 的文件 #! python3.9
当我右键单击一个文件时,选择open with
和select C:\Windows\py.exe
,然后默认情况下(没有任何shebang)打开的是Python 3.9 .
当我在 CMD
中键入 py
时,我得到 Python 3.6.5
.
但是如果我双击 C:\Windows\py.exe
控制台是 Python 3.9.5
.
如果我设置 open all .py' to
C:\Windows\py.exe, then if they don't have a sheband they will be started with
Python 3.6.5`?
详情:
在安装 Python 3.9 之前,我一直在 运行 上使用 Python 3.6。我还没有将所有包更新到 Python 3.9,所以我希望默认的 Python 是 3.6。对于需要使用 Python 3.9 的脚本,我使用了 shebang #! python3.9
.
所以我想将 Opens with...
默认设置为 C:\Windows\py.exe
,但如果我这样做,我的脚本在 Python 3.9.5
中打开,所以它们失败了。
我已经做过的事情:
我创建了一个
C:\Windows\py.ini
,默认设置为python=3.6
(与pyw
相同)。在路径中,我将
C:\Users\user\AppData\Local\Programs\Python\Python36\
移动到C:\Users\user\AppData\Local\Programs\Python\Python39
上方。我已经将另一个环境变量
PY_PYTHON
设置为PY_PYTHON=3.6
。我有运行
assoc .py=Python
Windows documentation说
打开文件时设置为 Python 3.9The py.exe launcher will automatically select the most recent version of Python you've installed
,所以我重新安装了Python 3.6(在已经安装了Python 3.9之后)但是,仍然是默认的当我用C:\WINDOWS\py.exe
ftype | find "Python"
return这个Python.ArchiveFile="C:\WINDOWS\py.exe" "%L" %*
Python.CompiledFile="C:\WINDOWS\py.exe" "%L" %*
Python.File="C:\WINDOWS\py.exe" "%L" %*
Python.NoConArchiveFile="C:\WINDOWS\pyw.exe" "%L" %*
Python.NoConFile="C:\WINDOWS\pyw.exe" "%L" %*
我在 Windows 10
一旦您安装了 Python 的第二个版本(在本例中为 Python 3.9),如果您仍希望之前的版本(在本例中为 Python 3.6)是默认的,那么你可以这样做:
1) 在CMD
py
命令设置默认Python版本
转到
C:\WINDOWS\
并创建 2 个文件py.ini
和pyw.ini
这两个文件都应该包含
[默认值]
python=3.6
完成后,如果您在 CMD
中输入 py
,它将打开 Python 3.6 控制台。如果您想要 Python 3.9 控制台,请输入 py -3.9
。要查看默认值,运行 py -0p
并查找 *
Installed Pythons found by py Launcher for Windows
-3.9-64 C:\Users\<user>\AppData\Local\Programs\Python\Python39\python.exe
-3.6-64 C:\Users\<user>\AppData\Local\Programs\Python\Python36\python.exe *
不要再在 CMD
中使用 python
,始终使用带有正确参数的 py
[如@karl-knechtel 的评论所示:如果您有一个活动 venv, using python instead of
py` 将优先考虑 venv 的 Python,这通常是您想要的]:
py -3.9 pip install # will install package for 3.9
py pip install # will install package for 3.6
2) 设置文件双击打开时的默认Python版本
转到
C:\Users\<user>\AppData\Local\Programs\Python\Launcher\
并创建 2 个文件py.ini
和pyw.ini
这两个文件都应该包含
[默认值]
python=3.6右键单击任何
.py
、selectopen with
,选中Always use this app...
,一直向下滚动并单击more app
,再次向下滚动并单击look for another app...
,然后单击 selectC:\WINDOWS\py.exe
完成后,如果文件不包含 shebang,那么它将使用默认的 Python 版本启动,即 3.6
。要使用 Python 3.9
,请将此 #!python3.9
添加到脚本的最顶部
如果你想在设置 open all with...
之前进行测试,你可以在一些测试脚本的最顶部添加这些以查看将使用哪个版本,然后使用 open with
而不检查 use for all
:
应该是3.9
#!python3.9
导入系统
打印(sys.version_info)
输入(“关闭”)应该是 3.6 因为它会调用默认值
#!python
导入系统
打印(sys.version_info)
输入(“关闭”)应该是 3.6 因为它会调用默认值
导入系统
打印(sys.version_info)
输入(“关闭”)应该是 3.9 因为它是最新的 python 3 安装
#!python3
导入系统
打印(sys.version_info)
输入(“关闭”)