【问题标题】:What is the purpose of Python setuptools?Python setuptools 的目的是什么?
【发布时间】:2017-05-04 04:01:10
【问题描述】:

setuptools 在 Python 中的用途是什么?如果我没有 setuptools 或从不升级 setuptools 怎么办?

我阅读了文档,但我无法得到答案。

【问题讨论】:

  • 通常它们有助于在它们之间造成混淆,easy_install、distutils、distutils2、pip、wheels 和其他一些我现在忘记的东西。有时它们还会生成一些有趣的编译器错误来让你开心,尽管最好的方法是它们将内容添加到 pth 文件并在你背后搞砸搜索路径。

标签: python setuptools


【解决方案1】:

setuptools 是许多其他包用来处理从源代码安装的包(以及与之相关的任务)。

它通常广泛用于非纯 Python 包,这些包需要一些编译/安装步骤才能使用(想想包含用 C 编写的扩展的包); setuptools 排除了此过程中使用的一些最常见的操作(使用与当前 Python 安装兼容的选项编译 C 文件,如果需要运行 Cython,为 setup.py 文件提供一些模糊连贯的命令/选项集,.. .) 以及提供在 Python 包开发过程中使用的一些工具。

与 distutils、distutils2 (?) 和其他一些我从未真正理解的软件包设置工具有某种重叠;老实说,它是 Python 生态系统的一部分,非常混乱。

关键是,如果你:

  • 不要开发 Python 包;
  • 仅安装二进制或纯 Python 包;
  • 只能通过高级安装程序(pip、easy_install、您的发行版的包管理器)安装包你真的很幸运

您通常不需要担心 setuptools - 或者它不是真正需要的,或者高级安装程序会确保您安装了足够新的版本;在最后一种情况下,只要他们必须做的操作足够简单,一般他们就不会失败。

否则,不幸的是,您将花费一些有趣的时间来了解究竟是谁在 setup.py 和编译器之间添加了导致编译失败的命令行开关,或者搞砸了包含路径,或者期望库是在不同的路径中,或错误检测编译器,或尝试将内容安装到错误的路径或上述任何组合中。

【讨论】:

    【解决方案2】:

    Setuptools 是一个包开发过程库,旨在 通过增强 Python 标准来促进打包 Python 项目 库 distutils(分发实用程序)。

    Wikipedia

    基本上,如果您正在创建和分发 Python 包,这将非常有帮助。

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 1970-01-01
      • 2015-03-05
      • 2021-12-22
      • 2019-09-08
      • 2012-02-21
      • 2012-12-17
      • 1970-01-01
      • 2020-02-08
      相关资源
      最近更新 更多