Dan*_*rro 42 python testing setuptools distribute
当我运行setup.py中python setup.py test列出的依赖项时tests_require,会将其下载到当前目录.我想在site-packages中安装这些依赖项,就像python setup.py install我运行时列出的依赖项一样requires.
Jas*_*mbs 45
你没有问过一个问题,但是你已经暗中提出了一个问题,"在运行install时,如何强制setuptools将测试依赖项(由tests_require参数指定)安装到Python环境中?" 我会回答这个问题.
您无法指定安装测试要求的位置.tests_require参数的重点是指定安装包不需要的依赖关系,但仅用于运行测试(因为您可以想象许多消费者可能希望安装包但不运行测试).如果您希望在安装期间包含测试要求,我会将它们包含在install_requires参数中.例如:
test_requirements = ['pytest>=2.1', 'dingus']
setup(
# ...
tests_require = test_requirements,
install_requires = [
# ... (your usual install requirements)
] + test_requirements,
)
Run Code Online (Sandbox Code Playgroud)
据我所知,在没有更改安装脚本的情况下,没有参数可以强制执行此行为.
Tib*_*him 21
您可以使用virtualenv来避免这种情况,并将额外的软件包安装到lib/pythonX/site-packages中的默认位置.首先,您应该在setup.py中将测试要求定义为额外内容:
setup(
# ...
install_requires=[
# ... (your usual install requirements)
],
extras_require={
'testing': [
# ... (your test requirements)
]
},
)
Run Code Online (Sandbox Code Playgroud)
然后安装包含这样的测试要求的包:
pip install -e ".[testing]"
Run Code Online (Sandbox Code Playgroud)
sch*_*o72 15
我正在使用pip来实现类似的目标.我没有在我的setup.py 中添加tests_requires或extras,而是创建了一个pip需求文件.
示例我的dev_requirements.txt文件:
pytest
webtest
Run Code Online (Sandbox Code Playgroud)
然后安装它运行:
$ pip install -r dev_requirements.txt
Run Code Online (Sandbox Code Playgroud)