已安装多个Python版本:如何为CMD和“打开方式”设置py.exe(适用于Windows的Python启动器)的默认版本

6ljaweal  于 2022-11-26  发布在  Python
关注(0)|答案(1)|浏览(191)

简而言之:

我安装了两个版本的Python:Python 3.6和Python 3.9。我想打开我所有的.py.pyw(例如:我希望Windows版Python启动器的默认版本是Python 3.6,这样没有shebang的文件可以用Python 3.6打开。Python 3.9应该只用于shebang为#! python3.9的文件
当我右键单击一个文件,选择open with,然后选择C:\Windows\py.exe,那么默认情况下(没有任何shebang),打开的是Python 3.9。
但如果我双击C:\Windows\py.exe,控制台就是Python 3.9.5
如果我设置了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中打开,因此它们将失败。
我已经做了什么:
1.我已经创建了一个C:\Windows\py.ini,默认设置为python=3.6pyw也是如此)。
1.在path中,我已经将C:\Users\user\AppData\Local\Programs\Python\Python36\移到C:\Users\user\AppData\Local\Programs\Python\Python39上方。
1.我已经将另一个环境变量PY_PYTHON设置为PY_PYTHON=3.6
1.我已经运行了assoc .py=Python

  1. Windows文档中提到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
  2. ftype | find "Python"返回此
    文件名:
    文件名:
    文件名:
    文件名:
    文件名:
    我使用的是Windows 10
z2acfund

z2acfund1#

要设置Python的默认版本,你需要安装Python Launcher。如果你没有安装,你可以使用你的Python安装程序的installation.exe,然后选择修改/修复来安装它。
你还需要知道你的Python启动器在哪里:

  • 如果您为所有用户安装了它,则它位于C:\WINDOWS\中,
  • 如果不是,则在%USERPROFILE%\AppData\Local\Programs\Python\Launcher\中。

在本例中,Python的最新安装版本是Python 3.11,但应该是默认版本的是Python 3.6。

设置默认Python版本:

  • 转到Python启动器文件夹并创建2个文件:py.inipyw.ini
  • 确保这两个文件都是UFT-8(它们不应该是带BOM的UFT-8)
  • 添加到以下每个文件:
[defaults]   
 python=3.6
  • 现在,右键单击任何.py,选择open with,选择check another app,选中Always use this app...,向下滚动并单击more app...,导航到Python启动器文件夹并选择py.exe
  • 再次执行上一步,但这次右键单击.pyw文件并选择pyw.exe
    如何使用

·在CMD中:

  • CMD中不要再使用python,总是使用py。如果你只输入py,那么它将打开一个Python 3.6控制台。如果你想要一个Python 3.11控制台,输入py -3.11
  • 正如@karl-knechtel的评论中所指出的:如果你有一个活跃的venv, using python instead of py ′会优先考虑venv的Python,这通常是你想要的。
  • 要使用pip进行安装,请执行以下操作:

py-3.11-m pip install #将安装3.11版的软件包py -m pip install #将安装3.6版的软件包
●对于python文件:

  • 如果文件不包含shebang,那么它将以默认的Python版本3.6启动。
  • 要对此文件使用Python 3.11,请在脚本的最顶部添加shebang #!python3.11
    若要验证是否一切正常:
  • 打开一个CMD,写入py -0p并查找*。它应该位于您在.ini文件中设置的默认版本旁边。

py Launcher for Windows找到已安装的Pythons
C:\用户\应用程序数据\本地\程序\Python\Python 39\Python. exe
C:\用户\应用程序数据\本地\程序\Python\Python 36\python.exe *

  • 通过此设置,您可以在脚本中使用所需的特定Python版本:
  • 3.6(因为它将调用默认版本)
import sys   
print(sys.version_info)  
input("close")
  • 3.6(因为它将调用默认值)
#!python   
import sys   
print(sys.version_info)   
input("close")
  • 3.11
#!python3.11   
import sys  
print(sys.version_info)   
input("close")
  • 3.11(因为它是最新安装的python 3)
#!python3    
import sys   
print(sys.version_info)   
input("close")

相关问题