我在extras_require
中有setup.cfg
个依赖项,列为:
[extras_require]
tensorflow = tensorflow
tensorflow_gpu = tensorflow-gpu
这样,如果我的软件包是与pip install pkg[tensorflow_gpu]
一起安装的,它将安装该软件包的一个版本,而pip install pkg[tensorflow]
将安装另一个版本。
这类似于Edward Package软件包的包装方式(此git issue之后)。
但是,当我运行python setup.py test
时,它将在执行单元测试之前同时安装 和tensorflow
和tensorflow-gpu
软件包。一旦我在任何单元测试中import tensorflow
,并且与硬件有关,这就会成为问题。
在运行extras_require
时是否可以有选择地安装某个python setup.py test
软件包?
或者是否可以安装否 extras_require
软件包?因为这样我可以在运行测试命令之前安装tensorflow
。
(注意:我了解我可以独立运行pip和pytest,但我正在寻找使用setuptools
的解决方案)
答案 0 :(得分:0)
看来这不是setuptools
的问题,而是我正在使用的名为pyscaffold
的工具的潜在问题。我在他们的github上打开了question issue。
当我使用以下python setup.py test
运行setup.cfg
时,它可以正常工作,因为它不会拉入tensorflow。
[metadata]
name = simple
[options]
package_dir =
=src
setup_requires = pytest-runner
install_requires =
tests_require = pytest
[options.extras_require]
tf = tensorflow
[aliases]
test = pytest
[tool:pytest]
addopts = --verbose
testpaths = tests