Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我是否应该在我的模块中包括斯芬克斯和/或鼻子';s requirements.txt?_Python_Standards_Pip_Setup.py_Requirements.txt - Fatal编程技术网

Python 我是否应该在我的模块中包括斯芬克斯和/或鼻子';s requirements.txt?

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

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

  • 我是否应该在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