我应该在模块的requirements.txt中包含Sphinx和/或Nose吗?

gol*_*ith 7 python standards pip setup.py requirements.txt

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

  • 我应该在我的模块的setup.py(install_requires)依赖项中包含Sphinx和/或Nose,因为它们不是基本模块功能所必需的,只有你想自己构建文档/运行测试?

  • 我是否应该在Github上的模块的requirements.txt中包含Sphinx和/或Nose,原因相同但是从Github下载我的项目的用户可能更有可能构建docs/run测试?

这是我的第一个Python模块,因此我们将非常感谢您提供一些最佳实践/标准建议.

Phi*_*oud 8

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

requirements.txt 文件也不应该包含开发所需的软件包,尽管那里有一些摆动空间.

例如,pandas我们使用Travis-CI构建的需求文件.你可以在这里查看.

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