Windows系统Python多版本共存和便捷切换

在Windows系统上,无论是使用官方安装包还是Microsoft Store应用商店安装Python,在命令行中使用python命令都只会打开其中某一个特定版本的Python。若是同时安装了多个版本的Python并且想要启动其中的一个,则通常有些困难。若要调用某个特定版本Python的PIP包管理器来安装依赖包,则情况更为复杂。实际上,官方安装包版本和Microsoft Store应用商店版本均提供了用于区分不同Python版本的便捷方式。

官网安装包版本

官网安装包安装的Python,其可执行文件均为python.exe,PIP包管理器均为pip.exe。直接输入命令时,启动的具体版本取决于PATH环境变量中哪一个版本的路径最先出现。若要更改默认的调用版本,可以更改PATH环境变量,将所需版本的所在路径放在第一位。

官网提供的安装包在默认设置下会附带安装Python Launcher启动器,该启动器提供了一个py命令,通过第一个参数决定要启动的Python版本,并将之后的参数传递给python.exe。使用示例如下:

命令实现的功能
py -3启动最新的Python 3.X的交互式命令行界面
py -2启动最新的Python 2.X的交互式命令行界面
py -X.Y启动Python X.Y版本的交互式命令行界面
py -X.Y a.py用Python X.Y版本运行脚本文件a.py
py -X.Y -m b用Python X.Y版本运行模块b
py命令使用示例

考虑到PIP包管理器可以通过python -m pip的形式启动,py启动器也可以用于启动特定版本Python中的PIP。例如,使用命令py -3.8 -m pip可以启动Python 3.8中的PIP。

Microsoft Store版本

从Microsoft Store应用商店中安装的Python并没有附带Python Launcher启动器,但其提供了不同命令名称用于启动不同的Python版本。例如,安装了Python 3.8之后,其主程序可通过pythonpython3python3.8启动。同样,IDLE、PIP包管理器也有不同的命令名称。

要更改pythonpython3等命令名称启动的默认版本,可以在Windows设置中的“应用执行别名”页面(Windows 11中位于应用-高级应用设置-应用执行别名)进行设置。该设置中若某一行设置为“开”,则该行中所指的应用程序将可以通过下方的“应用执行别名”启动。下图所示的情况下,python.exe命令可以启动Python 3.10但不能启动Python 3.11。将期望的默认Python版本的python.exe别名开启,则python.exe命令会调用该版本的Python。

Windows应用执行别名设置页面。
Python 3.10 - python.exe - 开
Python 3.11 - python.exe - 关
“应用执行别名”设置页面

应用商店版PIP包管理器同样可以通过python -m pip的形式启动,如python3.8 -m pip会启动Python 3.8中的PIP。

结论

Windows系统中官方安装包版Python可以通过修改PATH环境变量的顺序来决定默认版本,或通过Python Launcher启动器启动指定的Python版本。Microsoft Store应用商店版Python可以通过“应用别名设置”来决定默认版本,或通过不同的应用别名来启动指定的Python版本。

留言

有想法?请给我们留言!您的留言不会直接显示在网站内。