【问题标题】:What is the alternative to using --process-dependency-links with pip将 --process-dependency-links 与 pip 一起使用的替代方法是什么
【发布时间】:2015-12-18 23:51:55
【问题描述】:

我正在使用 Python 2.7。我正在尝试pip install 一个依赖于另一个 repo(也在内部 github 上)的 repo(在内部 github 上)。我尝试了几种选择,但有效的是这样的:

(env)abc$ cat requirements.txt
 -e git://github.abc.com/abc/abc.git#egg=my_abc --process-dependency-links

(env)abc$ pip install -r requirements.txt

但我在运行命令行时收到警告:

“弃用:依赖链接处理已被弃用,将在未来的版本中删除。”

我正在使用 pip v7.1.2。这样做的正确方法是什么?

【问题讨论】:

标签: git version-control pip setuptools easy-install


【解决方案1】:

你可以使用PEP 508 URL requirements:

pip @ https://github.com/pypa/pip/archive/19.2.3.zip

它们适用于直接需求(通过 CLI,或在requirements.txt 中列出)以及不是由 pip 从 PyPI 下载的包。请注意,对此的支持已在 pip 18.0 中发布(即 2018 年初,因为 pip 现在在 CalVer 上)。


在 OP 的情况下,如果依赖链接更新为 PEP 508 格式,requirements.txt 可以保持不变(尽管他们希望删除 --process-dependency-links)。

【讨论】:

  • 更新了我的答案,以反映当前的事态。
【解决方案2】:

尝试使用--process-dependency-links 标志选项。您可能还必须使用--allow-external packagename--allow-unverified packagename,其中 packagename 实际上指定了任何依赖项 您想安装不在官方存储库中的文件

注意:由于它已被弃用,--process-dependency-links 标志将很快被完全删除。 我相信首选的方法是提供一个requirements.txt 文件。 例如:让我对我的项目有一定的要求,所以我会写在 requirements.txt 中。

&cat requirements.txt

django-compressor>=1.4,<1.5
django-grappelli>=2.6.3,<2.7
django-bootstrap-form>=3.1,<3.2

接下来我可以使用:

$ pip install -r requirements.txt

这就是你所要做的一切

【讨论】:

  • 请参阅上面的编辑。我已经在使用 requirements.txt 以及我原始帖子中显示的内容。我还需要什么?
  • requirement.txt 应该包含所有依赖需求,--process-dependency-links 不应该在那里,而是应该包含所有依赖需求的列表。
  • 我想您也可能希望接受它作为答案。如果它解决了你的目的
  • @csharpcoder 所述首选方法不起作用,因为pip 不会递归解析需求文件!实际上,没有安装需求的需求!
猜你喜欢
  • 2019-02-25
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多