【问题标题】:How to distribute modules with python 3.4如何使用 python 3.4 分发模块
【发布时间】:2014-07-03 20:39:58
【问题描述】:

我在Python Docs 上看到 distutils 自 Python 3.4 以来就是“遗留”。现在推荐(或标准)分发包和/或模块的方法是什么。 谢谢

【问题讨论】:

    标签: python python-3.x package


    【解决方案1】:

    好吧,distutils 模块的文档说明了一切:

    distutils 包提供对构建和安装的支持 附加模块到 Python 安装中。新模块可能是 100% 纯 Python,或者可能是用 C 编写的扩展模块,或者 可能是 Python 包的集合,其中包括编码的模块 Python 和 C。

    大多数 Python 用户不想直接使用这个模块,但是 改为使用 Python Packaging 维护的跨版本工具 权威。更多信息请参考Python Packaging User Guide 信息。

    为寻求更深层次的打包工具作者和用户的利益 了解当前包装和配送的细节 系统,基于传统 distutils 的用户文档和 API 参考仍然可用:

    特别是在linked user guide 里面他们说:

    • 使用setuptools 定义项目并创建源分发。 [5] [6]
    • 使用可从 wheel 项目中获得的 bdist_wheel setuptools 扩展来创建轮子。这是特别有益的,如果你 项目包含二进制扩展。 [7]
    • 使用 twine 将分发上传到 PyPI。

    后来:

    distributesetuptools 的一个分支,它被合并回 setuptools(在 v0.7 中),从而使 setuptools 成为 Python 打包。


    换句话说:

    • distutils 仍然是标准方式。只是,它比大多数人想要的要低。它是构建其他工具的基础,因此它不是“遗产”。事实上,文档中没有提及弃用
    • setuptools 是分发包的首选方式。

    【讨论】:

      【解决方案2】:

      根据Python Packaging User Guide建议使用setuptools然后twine创建PyPi包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 2015-06-15
        • 2016-04-19
        • 1970-01-01
        • 2014-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多