distutils.util.get_platform() 的替代品是什么?
What is the replacement for distutils.util.get_platform()?
显然,Python 3.10 / 3.12 将弃用/删除 distutils。
不幸的是,我无法从中找到我正在使用的唯一功能的替代品; distutils.util.get_platform()
。用什么代替它?
请注意 platform
是 不是 的答案。我需要一个 returns 构建二元轮时使用的完整字符串的函数¹,例如macosx-12-x86_64
。请特别注意,其中似乎嵌入了特定于平台的逻辑(例如,我知道获得 macos 版本的唯一其他方法是使用特定于 macos 的 API)。
(¹ 如评论中所述,严格来说,distutils.util.get_platform()
不是该功能。但是,PEP 425 指定“平台标签只是 distutils.util.get_platform()
和所有连字符-
和句点 .
替换为下划线 _
。”因此,从 distutils.util.get_platform()
派生标签是直接且与平台无关的。因此,可接受的答案可能是已批准的 public API 直接生成平台标签, 或 distutils.util.get_platform()
的兼容替代品。)
对于你的use-case,sysconfig
有替代品
import sysconfig
sysconfig.get_platform()
当从 Replaced all uses of distutils with setuptools #428.
中的代码中删除 distutils 时,这就是 wheel 项目本身用来替代 distutils.util.get_platform()
的东西
显然,Python 3.10 / 3.12 将弃用/删除 distutils。
不幸的是,我无法从中找到我正在使用的唯一功能的替代品; distutils.util.get_platform()
。用什么代替它?
请注意 platform
是 不是 的答案。我需要一个 returns 构建二元轮时使用的完整字符串的函数¹,例如macosx-12-x86_64
。请特别注意,其中似乎嵌入了特定于平台的逻辑(例如,我知道获得 macos 版本的唯一其他方法是使用特定于 macos 的 API)。
(¹ 如评论中所述,严格来说,distutils.util.get_platform()
不是该功能。但是,PEP 425 指定“平台标签只是 distutils.util.get_platform()
和所有连字符-
和句点 .
替换为下划线 _
。”因此,从 distutils.util.get_platform()
派生标签是直接且与平台无关的。因此,可接受的答案可能是已批准的 public API 直接生成平台标签, 或 distutils.util.get_platform()
的兼容替代品。)
对于你的use-case,sysconfig
有替代品
import sysconfig
sysconfig.get_platform()
当从 Replaced all uses of distutils with setuptools #428.
中的代码中删除 distutils 时,这就是 wheel 项目本身用来替代distutils.util.get_platform()
的东西