当我运行setup.py 中python setup.py test
列出的依赖项时tests_require
,将下载到当前目录。当我运行python setup.py install
时,列出的依赖项requires
改为安装到site-packages
.
我怎样才能将这些tests_require
依赖项安装在 中site-packages
?
当我运行setup.py 中python setup.py test
列出的依赖项时tests_require
,将下载到当前目录。当我运行python setup.py install
时,列出的依赖项requires
改为安装到site-packages
.
我怎样才能将这些tests_require
依赖项安装在 中site-packages
?
您无法指定测试需求的安装位置。tests_require 参数的全部意义在于指定安装包不需要但仅用于运行测试的依赖项(正如您可以想象的那样,许多消费者可能想要安装包但不运行测试)。如果您希望在安装过程中包含测试要求,我会将它们包含在 install_requires 参数中。例如:
test_requirements = ['pytest>=2.1', 'dingus']
setup(
# ...
tests_require = test_requirements,
install_requires = [
# ... (your usual install requirements)
] + test_requirements,
)
据我所知,在不更改设置脚本的情况下,您无法传递任何参数来强制执行此行为。
您可以使用 virtualenv 来避免这种情况,并将额外的包安装到它们的默认位置,在 lib/pythonX/site-packages 内。首先,您应该在 setup.py 中将您的测试要求定义为额外的:
setup(
# ...
install_requires=[
# ... (your usual install requirements)
],
extras_require={
'testing': [
# ... (your test requirements)
]
},
)
然后安装你的包,测试要求如下:
pip install -e ".[testing]"
我正在使用pip来实现类似的目标。我没有向我的 setup.py添加tests_requires或额外内容,而是创建了一个pip 需求文件。
例如我的dev_requirements.txt文件:
pytest
webtest
然后安装它运行:
$ pip install -r dev_requirements.txt