Python的新“pip wheel”是否支持为tests_requires中列出的依赖项构建wheel?

10

我使用setuptools的 "tests_require" 来指定测试我的包所需的依赖项。

tests_require - http://pythonhosted.org/distribute/setuptools.html#new-and-changed-setup-keywords

我已经开始使用wheel打包

http://wheel.readthedocs.org/en/latest/

并构建当前包及其所有依赖项的轮子目录。

pip wheel --wheel-dir=/tmp/wheelhouse .

不过,我也想为任何在测试要求中列出的包中的所有包构建轮子。

显然,我可以在重复的test_requirements.txt文件中明确指定要求:

pip wheel --wheel-dir=/mnt/wheelhouse -r test-requirements.txt

但是我会在测试要求文件和tests_require列表中重复依赖项。我可以将测试要求文件读入tests_require,但这似乎滥用了requirements文件,因为据我所知,它们旨在允许用户控制指定已知可以一起使用的软件包环境。

Requirements files - http://www.pip-installer.org/en/latest/cookbook.html
1个回答

2
不,没有明确的支持。最简单的方法是在您的setup.py文件中添加一个“extra”参数:
setup(
    extras_require={
        "test": ["pytest", "your other requirements"],
    },
)

你当然可以重复使用与 test_requires 相同的 list,然后你可以运行 pip wheel .[test],它将为所有这些内容创建wheel。


"pip wheel .[test]" 这个语法在 Python 2.7 上应该能够工作吗?我得到了一个错误信息:"zsh: no matches found: [test]" - yorjo
你可能只需要引用'.[test]',这样它就不会尝试搜索与该shell通配符模式匹配的文件名。 - Dobes Vandermeer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接