有什么方法可以告诉 pip 在不需要时跳过某些 setup_requires 依赖项吗?
在我的场景中,我在我的setup.py中将pytest-runner声明为设置依赖项(用于执行测试)。当我尝试安装我的软件包时(即:pip install my-package.tar.gz),它会下载pytest-runner,否则它将无法使用(*)。
在setup.py中我有:
...
setup_requires=['pytest-runner', 'flake8']
...
我想告诉setup.py只在执行测试时才使用pytest-runner。这可能吗?
正如@deceze建议的那样,这个声明将起作用:
setup_requires=['pytest-runner', 'flake8'] if 'test' in sys.argv else []
但我不想为setup.py添加逻辑。
(*)环境非常有限,这就是为什么下载依赖项是一个障碍。
答案 0 :(得分:1)
rwt(Run With This)似乎是首选方法。
它提供按需依赖性解析,使得包在解释器会话期间可用。 其目标场景之一是:测试跑步者。
安装rwt(*)后,可以从pytest-runner模块执行加载setup.py命令:
rwt pytest-runner -- setup.py test
或
python -m rwt pytest-runner -- setup.py test
(*)您仍然必须安装不需要的依赖项(即:rwt),但它似乎比安装其他依赖项的影响小。