我在这里的第一篇文章,作为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)