Python 我是否应该在我的模块中包括斯芬克斯和/或鼻子';s requirements.txt?
我在Github上创建了一个Python模块,它使用Nose进行单元测试,使用Sphinx生成文档。我有两个问题:Python 我是否应该在我的模块中包括斯芬克斯和/或鼻子';s requirements.txt?,python,standards,pip,setup.py,requirements.txt,Python,Standards,Pip,Setup.py,Requirements.txt,我在Github上创建了一个Python模块,它使用Nose进行单元测试,使用Sphinx生成文档。我有两个问题: 我是否应该在setup.py(install_requires)中的模块依赖项中包含Sphinx和/或Nose,因为它们不是基本模块功能所必需的,只有在您希望自己构建文档/运行测试时才需要 我是否应该在Github上的模块requirements.txt中包含Sphinx和/或Nose,原因相同,但从Github下载我的项目的用户可能更倾向于构建文档/运行测试 这是我的第一个P
- 我是否应该在setup.py(install_requires)中的模块依赖项中包含Sphinx和/或Nose,因为它们不是基本模块功能所必需的,只有在您希望自己构建文档/运行测试时才需要
- 我是否应该在Github上的模块requirements.txt中包含Sphinx和/或Nose,原因相同,但从Github下载我的项目的用户可能更倾向于构建文档/运行测试
这是我的第一个Python模块,因此请提供一些最佳实践/标准建议。如果包的基本功能不需要
nose
和/或sphinx
,则不要将它们包含在setup.py
中。强迫用户安装他们可能从未使用过的软件包是没有意义的。如果他们最终想要帮助您开发软件包,他们可以自己安装必要的软件包
requirements.txt
文件也不应该包括开发所需的包,尽管其中有一些回旋余地
例如,至少我们在Travis CI构建中使用需求文件。你可以去看看
我们正在考虑的一件事是在Travis CI上构建文档,因为有时失败的文档构建会捕获测试套件没有捕获的bug。在这种情况下,我们将把
sphinx
放在我们用来构建文档的Python版本的需求文件中。不要在setup.py中包含那些好东西。如果愿意,您可以为开发人员编写需求文件;用户不需要。例如,调用一个文件reqs.development
:
-e . # include the package defined by setup.py in editable (development) mode
nose
sphinx
用户可以pip安装您的模块
或pip安装https://your/tarball
,开发人员可以分叉、克隆和pip安装-r reqs.development