类似于https://dev59.com/2Gcs5IYBdhLWcg3w3Hqn。
我正在修改faker,以期待我与validators开放的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"
更新:由于已经修复,该问题将不会再次出现 -- 所有测试都将通过
mypackage==70.1.0
,dependency_links中有https://my.company.com/path/to/mypackage-70.1.0.tar.gz#egg=mypackage-70.1.0
。作为'pip3 install .'和'python3 setup.py install'非常好,但是tox版本3.24.4失败了,仍然搜索pypi并出现“ERROR:Could not find a version that satisfies the requirement”的错误。请建议尝试什么来解决tox的问题,谢谢。 - chrisinmtowntox
底层依赖于pip install
,所以这方面应该不会有问题。最好的方法是提出一个新问题,并提供一个 [mcve];在评论中放置一个链接,我会尽力帮助。 - hoeflingtox
环境安装了旧版本的setuptools
;这可能发生在旧版本的Python和由venv
模块引导的版本中。但是,没有示例只是一种猜测。 - hoefling