为何macOS下platform.platform与sysconfig.get_platform返回不同OS版本?
macOS版本返回不一致的原因
系统信息
- Mac OS 12.5
- 2019款Intel芯片16寸MBP
- Python 3.9.13(来自python.org)
问题重现
> python Python 3.9.13 (v3.9.13:6de2ca5339, May 17 2022, 11:23:25) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> platform.platform() 'macOS-10.16-x86_64-i386-64bit' >>> import sysconfig >>> sysconfig.get_platform() 'macosx-10.9-x86_64'
原因解析
1. platform.platform()返回10.16的原因
从macOS Big Sur(11.0)开始,苹果为了兼容依赖旧版本号逻辑的软件,在用户层对外暴露的版本号延续了之前10.x的序列,设为10.16,真实的大版本号(比如12.x)仅在系统内部使用。platform模块读取的就是这个对外暴露的兼容版本号,所以显示10.16而非实际的12.5。
2. sysconfig.get_platform()返回10.9的原因
你使用的是python.org提供的通用Python安装包,这类包是针对**macOS 10.9(Mavericks)**编译的——这么做是为了让同一个安装包能在所有10.9及以上的macOS版本上运行。sysconfig.get_platform()返回的是Python编译时指定的最低兼容目标版本,而非当前系统的实际版本。
内容的提问来源于stack exchange,提问作者Vince W.
相关产品推荐
相关产品推荐

