gpt4 book ai didi

python - 应该 pytest 等人。进入 tests_require[] 或 extras_require{testing[]}?

转载 作者:IT老高 更新时间:2023-10-28 20:29:10 25 4
gpt4 key购买 nike

我正在编写一个使用 py.test 进行测试的 python 程序,现在一个测试也依赖于 numpy。我应该在 setup.py 的哪个位置添加这些依赖项?

目前我的 setup.py 的相关部分如下所示:

[...]
'version': '0.0.1',
'install_requires': [],
'tests_require': ['pytest'],
'cmdclass': {'test': PyTest},
'extras_require': {
'testing': ['pytest'],
},
[...]

有两次 pytest 感觉已经有些奇怪了,我不确定在哪里添加 numpy。

最佳答案

根据文档

tests_require 是使用 setuptools's test 时获得的附加包命令。它们未安装在系统上。

extras_require 是按功能名称分组的可选附加包。安装软件包列表以使用该功能,并且有多种安装方法。见 Does pip handle extras_requires from setuptools/distribute based sources?

我的解释

tests_require 应该是测试中使用的包,例如 numpy而不是用于进行测试的软件包,如 pytestnose .在 setuptools 之外进行测试时,tests_require 需要移动或复制到 extras_require 中的“测试”功能。

使用 extras_require 使 pytest 等测试包成为可选。使用 setup_requires 来要求它。

pytestnose 可以与 setuptools 集成以利用 tests_require 的便利性,但是,可能有缺点。 nose 警告通过 setuptools 运行时插件可能不可用。

Integrating with setuptools / python setup.py test / pytest-runnernosetests setuptools command .

例如

使用 setuptools 集成进行测试:

setup.py

[...]
'version': '0.0.1',
'install_requires': [],
'tests_require': ['numpy'],
'cmdclass': {'test': PyTest},
'extras_require': {
'testing': ['pytest'],
},
[...]

(env) > python setup.py develop
(env) > easy_install pytest
(env) > python setup.py test -a "--pdb"

或者,在没有 setuptools 集成的情况下进行测试:

setup.py

[...]
'version': '0.0.1',
'install_requires': [],
'extras_require': {
'testing': ['pytest', 'numpy'],
},
[...]

(env) > pip install -e .[testing]
(env) > pytest.py --pdb

关于python - 应该 pytest 等人。进入 tests_require[] 或 extras_require{testing[]}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26064738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com