根据 PEP 632,
distutils
将被正式标记为已弃用,并在 Python 3.12 中将其删除。我的产品很快就会支持 Python 3.10,我不想忍受弃用警告,所以我想现在删除对 distutils
的引用。
但是,我找不到有关如何正确执行此操作的明确文档。 PEP 中的 Migration Advice 出奇地粗略,我还没有找到
distutils
的标准文档,或者替换 setuptools
所需的任何模块(例如 distutils
?),这可以让我填补差距。我自己也无法从源代码中弄清楚。
具体来说,“迁移建议”部分说:
对于这些模块或类型,
是最好的替代品:setuptools
distutils.ccompiler
distutils.cmd.Command
distutils.command
distutils.config
distutils.core.Distribution
distutils.errors
...
对于这些模块或函数,请使用所示的标准库模块:
...
— 使用distutils.util.get_platform
模块platform
替代
setuptools
究竟如何运作?例如,类似 import distutils.command
的代码是否应该替换为 import setuptools.command
?同时,对于此处未列出的 distutils.core.setup
和 distutils.core.Extension
的使用,我该怎么办?
此外:
setuptools
不会出现在标准文档中的modules或index列表下,但我确实在我的Lib/site-packages
文件夹中看到它。它实际上是标准发行版的一部分吗?
如果没有,
setuptools
具体应该如何安装和使用?它是否有望成为标准发行版的一部分?客户是否需要先通过 Pip 安装它,然后才能运行导入 setuptools
的 setup.py 脚本?或者是人们根本不应该再运行setup.py?
这个问题从开发库的角度解决了这个问题。对于安装库,请参阅为什么我收到错误 ModuleNotFoundError:没有名为“distutils”的模块?。