类似于https://stackoverflow.com/questions/12518499/pip-ignores-dependency-links-in-setup-py
我正准备faker修改开放的PR,而我正在修改validators,并且我希望能够测试我将拥有的新依赖关系。
setup(
name='Faker',
...
install_requires=[
"python-dateutil>=2.4",
"six>=1.10",
"text-unidecode==1.2",
],
tests_require=[
"validators@https://github.com/kingbuzzman/validators/archive/0.13.0.tar.gz#egg=validators-0.13.0", # TODO: this will change # noqa
"ukpostcodeparser>=1.1.1",
...
],
...
)
python setup.py test
拒绝安装0.13.0版本。
如果我将故障线移至install_requires=[..]
(不应出现)
setup(
name='Faker',
...
install_requires=[
"python-dateutil>=2.4",
"six>=1.10",
"text-unidecode==1.2",
"validators@https://github.com/kingbuzzman/validators/archive/0.13.0.tar.gz#egg=validators-0.13.0", # TODO: this will change # noqa
],
tests_require=[
"ukpostcodeparser>=1.1.1",
...
],
...
)
pip install -e .
一切正常-安装正确的版本。python setup.py develop
。我的猜测是setuptools / distutils做一些奇怪的事情-pip
似乎解决了这个问题。我的问题:该如何解决?
问题代码和参考可以在这里找到:
查看当前问题的最简单方法:
docker run -it --rm python:3.7 bash -c "git clone https://github.com/kingbuzzman/faker.git; cd faker; pip install -e .; python setup.py test"
更新:由于此问题已得到解决,因此该问题将不再重复出现-所有测试都会通过
答案 0 :(得分:1)
很遗憾,setup_requires
和tests_require
都还不支持PEP 508中基于URL的查找或环境标记。例如,您需要使用dependency_links
setup(
...
tests_require=["validators>=0.13.0"],
dependency_links=['git+https://github.com/kingbuzzman/validators@master#egg=validators-0.13.0'],
)