我在Python Docs上看到,自Python 3.4以来,distutils是“遗留的”。什么是分发包和/或模块的推荐(或标准)方式。 感谢
答案 0 :(得分:4)
嗯,distutils
模块的文档说明了一切:
distutils
包提供了对构建和安装的支持 附加模块到Python安装中。新模块可能是 100%-pure Python,或者可能是用C编写的扩展模块,或者 可能是Python包的集合,其中包含编码的模块 Python和C。大多数Python用户不希望直接使用此模块,但是 改为使用Python Packaging维护的跨版本工具 权威。有关详细信息,请参阅Python Packaging User Guide 信息。强>
为了寻求更深层次的包装工具作者和用户的好处 了解当前包装和分销的细节 系统,基于遗留distutils的用户文档和API 参考仍然可用:
特别是在他们陈述的linked user guide内:
- 使用
setuptools
定义项目并创建源分发。 [5] [6]- 使用滚轮项目中提供的
bdist_wheel
setuptools
扩展名来创建轮子。如果你的话,这尤其有益 project包含二进制扩展。 [7]- 使用
twine
将分发上传到PyPI。
后来:
distribute
是setuptools
的一个分支,已合并回来 setuptools(在v0.7中),从而使 setuptools成为主要选择 Python包装。
换句话说:
distutils
仍然标准方式。只是,它比大多数人想要的更低。它是基于其他工具构建的基础,因此不“遗留”。事实上,在文档中没有提及弃用。setuptools
是分发软件包的首选方式。答案 1 :(得分:1)
根据Python Packaging User Guide,建议使用setuptools然后twine来创建PyPi包。