macOS上Python版本的位置(3.10.5使用通用安装程序)



我在这里的第一篇文章,作为MacOS和Python的新手。

最近安装的python3.10.5通过macOS 64-bit universal2 installer.pkg文件从python.org下载>下载比;mac OS on MacOS 12.4 [M1/Apple Silicon].

终端中python3命令显示版本为3.10.5

但是echo $PATH给了我一条通向

的路径

/图书馆/框架/Python.framework/版本/3.10/本

我期望安装的Python版本的文件夹具有相同的名称3.10.5,但是似乎没有这样的文件夹。

我错过了什么吗?

Python 3.10是主要版本。Python 3.10.5是3.10的维护版本,取代了之前所有的3.10版本。

TL;3.10(major.minor)已经指向最新安装的补丁版本(这里是5)。还建议为PATH环境变量使用Current文件夹,如下所示。

从命令到二进制位置

假设

  • python3是命令
  • 运行python3 --version后,其版本显示为3.10.5

参见:如何检查Python版本| LearnPython.com

然后这个命令显示二进制文件的位置。命令python3:

which python3

参见:python在mac osx上的位置,我的mac上是什么版本的python ?

Apple的框架约定

Python安装程序遵循Apple的Framework Developer Guide:

中解释的框架版本。框架(如Python而不是<Name>)按照约定安装在文件夹:

/System/Library/Frameworks/<Name>.framework/Versions/<major>.<minor>/

带有以下版本编号方案:

<major>.<minor>(如Python 3.10.5中的3.10)

其中<major>表示主要版本(具有破坏性的更改,如3),<minor>表示次要版本(仅具有较小的功能更改和错误修复,如10)。补丁或维护版本(如此处的5)在文件夹结构中被忽略。

PATH环境变量的推荐模式是使用macOS managed-frameworks的版本别名Current,它指向为框架安装的最新版本。尝试列出其内容以查看符号链接(也是符号链接或别名),命令ls -l后跟路径,例如:

/Library/ManagedFrameworks/Python/Python3.framework/Versions/Current/

参见:macadmins/python:框架文件与流行的python macadmin工具集一起使用如何在终端中获得符号链接的完全解析路径?

版本控制方案
  • Python版本控制:PEP 440 -版本标识和依赖规范
  • 维基百科:软件版本控制(主要,次要,补丁)
  • 语义版本控制(semver)