Python启动器(py.exe)主版本次版本相同补丁版本不同解释器选择的异常问题

Python解释器概述

在Windows中安装Python时,默认选择安排Python启动器(py.exe)。Python启动器可帮助定位和执行不同版本的Python解释器。

Python启动器(py.exe)一般自动安装在Windows目录中。

C:\Users\yy>whereis 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.exeC:\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.0d:\ProgramData\Anaconda3\python.exe 优先级高于版本为3.7.6C:\Users\yy\AppData\Local\Programs\Python\Python37\python.exe

解决办法?

安装Python3.8.6后,-3.7-64只剩下了一个。
但是问题仍然没有解决掉,3.7.03.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

猜你喜欢

转载自blog.csdn.net/mighty13/article/details/114365449