【发布时间】:2018-03-01 09:50:21
【问题描述】:
有很多人想知道setup.py 中的依赖链接的替代方案(使用pip 标志--process-dependency-links 激活):What is the alternative to using --process-dependency-links with pip,
Depend on git repository in setup.py。基本上,我被弃用警告咬了:
"DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release."
有些人建议使用requirements.txt,但这不是替代方案,因为它旨在提供一个完整的环境,通常与开发更相关。 install_requires 应该提供一种使用标准功能所必需的最小库集,因此当您执行 pip install [LIBRARY] 之类的操作时,需要安装所有需要的东西,而无需进一步的 pip install -r requirements.txt(我是指pip install [LIBRARY] 的LIBRARY 参数以git+http:\\github.com\username\repo.git 之类的URL 形式出现的情况。
我的弃用问题是我无法引用内部/私有包,但我也可以看到如果需要在 git 中引用特定提交或分支,这可能是个问题(至少我知道我已经完成这是过去)。
综上所述,dependency_links 的使用很复杂,例如语法并不总是很清楚,存在多种指定 url 的方法,人们往往会忘记他们必须将库的名称版本放在 dependency_links 和 install_requires 列表中。我想听到这种弃用有利于改进,但似乎并非如此
所以,总而言之,弃用依赖链接的原因是什么? 弃用依赖链接是否有利于更好的选择?好像不是there is an alternative
【问题讨论】:
-
"
requirements.txt... 旨在提供一个完整的环境。"您是说requirements.txt通常包含并非绝对必要的依赖项吗?你不能把那些编辑掉吗?如果您仍然想要一个包含用于开发的可选额外模块的文件,您总是可以拥有两个文件。我只是很困惑为什么你不认为它是一个替代品(但我不完全理解依赖链接)。 -
@ArthurTacca,正如您所说,
requirements.txt和requirements_dev.txt(或类似名称)很常见。一个是针对开发人员的,另一个列出了运行库的所有功能所必需的内容。在任何情况下,您都需要使用pip install -r requirements.txt。install_requires的想法是,例如,当您使用pip install pandas时,所有依赖项都会随它一起安装。换句话说,在安装pandas之后或之前,您不必执行pip install -r requirements.txt。 -
@ArthurTacca 依赖链接只是将库的范围扩展到
pip install ...中可用的库之外 -
只是在与同样的问题作斗争。我想我会像here 提到的那样运行我自己的 pypi 服务器。
标签: python pip setuptools setup.py