【发布时间】:2015-04-15 02:33:49
【问题描述】:
TL;DR:在运行python setup.py develop 时,有没有办法挂钩 setuptool 的“开发”来安装一组开发需求?
我正在使用 setuptools 构建我的第一个 python 包。我将要求指定为:
requirements = [
'click',
'ansible',
'fabric',
'gitpython',
'pyyaml',
'jinja2',
'yapsy'
]
test_requirements = [
'pytest',
'pytest-pep8',
'pytest-cov',
]
setup(
...
install_requires=requirements,
tests_require=test_requirements,
...
)
在开发过程中,我一直在安装包(在虚拟环境中):
python setup.py develop
并通过以下方式卸载:
python setup.py develop -u
该包使用 entry_points 来安装一些命令行脚本,因此这会为我设置命令并允许我在测试命令的同时编辑包。
我还有一些用于开发的依赖项...... sphinx + 扩展和其他一些东西(使用包不需要的东西)。我现在只是在虚拟环境中手动安装它们。我没有看到任何关于如何使用 setuptools 连接它们的文档(也没有在谷歌上找到任何示例)。
也许有一种方法可以挂钩“setup.py develop”以安装一组额外的要求?另一种我没有读过的方法?
【问题讨论】:
-
出于开发目的,我建议使用
requirements.txt为开发环境固定包版本,然后运行pip install -r requirements.txt来部署该环境。这就是它的用例。 -
如果 setup.py 有一个
develop_requires条目会非常好...
标签: python setuptools requirements