在Windows中安装Python时,默认选择安排Python启动器(py.exe
)。Python启动器可帮助定位和执行不同版本的Python解释器。
Python启动器(py.exe
)一般自动安装在Windows目录中。
C:\Users\yy>where py.exe
C:\Windows\py.exe
执行py -h
可列出Python启动器的使用方法。
C:\Users\yy>py -h
Python Launcher for Windows Version 3.7.6150.1013
usage:
py [launcher-args] [python-args] script [script-args]
Launcher arguments:
-2 : Launch the latest Python 2.x version
-3 : Launch the latest Python 3.x version
-X.Y : Launch the specified Python version
The above all default to 64 bit if a matching 64 bit python is present.
-X.Y-32: Launch the specified 32bit Python version
-X-32 : Launch the latest 32bit Python X version
-X.Y-64: Launch the specified 64bit Python version
-X-64 : Launch the latest 64bit Python X version
-0 --list : List the available pythons
-0p --list-paths : List with paths
执行py -0p
可列出Python解释器的名称与路径。
C:\Users\yy>py -0p
Installed Pythons found by py Launcher for Windows
-3.7-64 d:\ProgramData\Anaconda3\python.exe *
-3.7-64 C:\Users\yy\AppData\Local\Programs\Python\Python37\python.exe
-3.5-64 "C:\Program Files\Python35\python.exe"
-2.7-64 E:\Python27\python.exe
根据帮助文件可知,Python启动器可以根据主版本、次版本和实现版本号选择启动解释器,但是对于同主版本、次版本,补丁不同的解释器则无法选择,比如d:\ProgramData\Anaconda3\python.exe
和C:\Users\yy\AppData\Local\Programs\Python\Python37\python.exe
显示都为-3.7-64
,但是默认的是d:\ProgramData\Anaconda3\python.exe
(带*
),如何快速启动C:\Users\yy\AppData\Local\Programs\Python\Python37\python.exe
呢?
按照以往的办法改变环境变量中两个解释器路径的顺序,结果无效。
因为Python启动器选择解释器时不再考虑PATH
系统变量中的顺序,启动器将自动选择最合适的Python版本,它更倾向于按按语言版本排序,而不是使用最新安装的版本。
但是不清楚什么原因,版本为3.7.0
的d:\ProgramData\Anaconda3\python.exe
优先级高于版本为3.7.6
的C:\Users\yy\AppData\Local\Programs\Python\Python37\python.exe
安装Python3.8.6后,-3.7-64
只剩下了一个。
但是问题仍然没有解决掉,3.7.0
、3.7.6
仍然无法通过Python启动器切换……
我想原因如下:
按照正常情况下如果计算机已经安装了主版本、次版本相同的Python解释器,那么再安装时是要先卸载原解释器才能安装的!但是对于anaconda这类工具附带的Python解释器可能是没有考虑到的,所以出现了这样的问题。
C:\Users\yy>py -0p
Installed Pythons found by py Launcher for Windows
-3.8-64 C:\Users\yy\AppData\Local\Programs\Python\Python38\python.exe *
-3.7-64 C:\Users\yy\AppData\Local\Programs\Python\Python37\python.exe
-3.5-64 C:\Program Files\Python35\python.exe
-2.7-64 E:\Python27\python.exe