问题描述
简而言之:
我安装了两个版本的 Python:Python 3.6 和 Python 3.9。
我想使用适用于 Windows 的 Python Launcher 打开我所有的 .py
和 .pyw
(例如:当我双击它们时)。我希望适用于 Windows 的 Python 启动器的默认版本是 Python 3.6,以便使用 Python 3.6 打开没有 shebang 的文件。 Python 3.9 应仅用于带有 shebang #! python3.9
当我右键单击一个文件时,选择 open with
并选择 C:\Windows\py.exe
,然后默认情况下(没有任何 shebang),它是打开的 Python 3.9。
当我在 py
中输入 CMD
时,我得到 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.6 上运行,直到我同时安装了 Python 3.9。我还没有将所有包更新到 Python 3.9,所以我希望默认的 Python 是 3.6。对于需要使用 Python 3.9 的脚本,我使用 shebang #! python3.9
。
因此,我想将 Opens with...
默认设置为 C:\Windows\py.exe
,但如果我这样做,我的脚本将在 Python 3.9.5
中打开,因此它们失败了。
我已经做过的:
-
在路径中,我已将
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 之后)但是,当我用 { 打开一个文件时,默认值仍然设置为 Python 3.9 {1}} -
C:\WINDOWS\py.exe
返回这个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
-
这两个文件都应该包含
[默认]
蟒蛇=3.6
完成此操作后,如果您在 py
中输入 CMD
,则会打开 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 *
不要在 python
中再使用 CMD
,始终使用带有正确参数的 py
:
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
-
这两个文件都应该包含
[默认]
蟒蛇=3.6 -
右键单击任何
.py
,选择open with
,选中Always use this app...
,一直向下滚动并点击more app
,再次向下滚动然后点击look for another app...
,然后选择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)
输入(“关闭”)