Подобно на https://stackoverflow.com/questions/12518499/pip -ignores-dependency-links-in-setup-py
Модифицирам faker в очакване на открит PR, който отворих с валидатори и искам да мога да тествам новата зависимост, която ще имам.
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
изглежда решава проблема. Моят въпрос: как да поправя това?
Проблемният код и препратките могат да бъдат намерени тук:
- https://github.com/kingbuzzman/faker/commit/20f69082714fae2a60d356f4c63a061ce99a975e#diff-2eeaed663bd0d25b7e608891384b7298R72
- https://github.com/kingbuzzman/faker
- https://gist.github.com/kingbuzzman/e3f39ba217e2c14a9065fb14a502b63d
- https://github.com/pypa/setuptools/issues/1758
Най-лесният начин да видите проблема:
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"
АКТУАЛИЗАЦИЯ: Тъй като това е коригирано, проблемът няма да се повтаря повече - всички тестове ще преминат успешно