distutils.util.get_platform() 的替代品是什么?

问题描述 投票:0回答:1

显然,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()
。)

python python-3.x setuptools distutils
1个回答
9
投票

对于您的用例,

sysconfig
有替代品

import sysconfig
sysconfig.get_platform()

这就是 Wheel 项目本身在从代码中删除 distutils 时用作

distutils.util.get_platform()
的替代品 用 setuptools 替换了 distutils 的所有用途 #428

© www.soinside.com 2019 - 2024. All rights reserved.