显然,Python 3.10 / 3.12 将弃用/删除 distutils (cpython/issues/92584)。
不幸的是,我无法找到我正在使用的唯一功能的替代品;
distutils.util.get_platform()
。这个可以用什么代替?
请注意,
platform
是不是 答案。我需要一个函数来返回构建二进制轮时使用的完整字符串,例如macosx-12-x86_64
。请特别注意,其中似乎嵌入了特定于平台的逻辑(例如,我知道获取 macos 版本的唯一其他方法是使用特定于 macos 的 API)。
( 正如评论中所述,严格来说,
distutils.util.get_platform()
不是该功能。但是,PEP 425 指定“平台标记只是 distutils.util.get_platform()
,其中所有连字符 -
和句点 .
均已替换)带有下划线 _
。”因此,从 distutils.util.get_platform()
派生标签是直接且与平台无关的。因此,可接受的答案可能会给出经过批准的公共 API,该 API 可以直接生成平台标签,或 兼容替换 distutils.util.get_platform()
。)
sysconfig
有替代品
import sysconfig
sysconfig.get_platform()
这就是 Wheel 项目本身在从代码中删除 distutils 时用作
distutils.util.get_platform()
的替代品 用 setuptools 替换了 distutils 的所有用途 #428。