【问题标题】:Should I include Sphinx and/or Nose in my module's requirements.txt?我应该在模块的 requirements.txt 中包含 Sphinx 和/或 Nose 吗?
【发布时间】:2013-08-27 21:25:52
【问题描述】:

我在 Github 上创建了一个 Python 模块,该模块使用 Nose 进行单元测试,使用 Sphinx 生成文档。我有两个问题:

    1234563 /p>
  • 出于同样的原因,我是否应该在 Github 上的模块 requirements.txt 中包含 Sphinx 和/或 Nose,但从 Github 下载我的项目的用户可能更有可能构建文档/运行测试?

这是我的第一个 Python 模块,希望能提供一些最佳实践/标准建议。

【问题讨论】:

    标签: python standards pip setup.py requirements.txt


    【解决方案1】:

    不要在 setup.py 中包含那些不错的东西。如果您愿意,可以为开发人员编写需求文件;用户将不需要一个。比如调用一个文件reqs.development

    -e . # include the package defined by setup.py in editable (development) mode
    nose
    sphinx
    

    用户可以pip install yourmodulepip install https://your/tarball,开发者可以fork、clone和pip install -r reqs.development

    【讨论】:

      【解决方案2】:

      如果您的软件包的基本功能不需要nose 和/或sphinx,则不要将它们包含在setup.py 中。强迫用户安装他们可能永远不会使用的软件包是没有意义的。如果他们最终想帮助你开发你的包,他们可以自己安装必要的包。

      requirements.txt 文件也不应该包含开发所需的包,尽管那里有一些回旋余地。

      例如,在pandas,我们为我们的 Travis-CI 构建使用需求文件。您可以查看here

      我们正在考虑的一件事是在 Travis-CI 上构建我们的文档,因为有时一个失败的文档构建会捕获测试套件没有捕获的错误。在这种情况下,我们sphinx 放入我们用于构建文档的 Python 版本的需求文件中。

      【讨论】:

        猜你喜欢
        • 2018-02-24
        • 2016-12-09
        • 2018-07-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-31
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        相关资源
        最近更新 更多