pip install upgrade 升级私有依赖失败

时间:2021-01-30 14:45:29

标签: python pip

背景:pip支持ssh链接后缀

  1. 分支机构名称,
  2. 提交哈希,
  3. 标签名称
  4. 一个 git 引用

然而,pip 在升级某些依赖于这些 ssh 链接的包时有问题。

在版本 5.1.2 的名为 CurrentPackage 的包的 setup.py 中

install_requires=[
    "MyOwnPackage @ git+ssh://git@github.com/myusename/MyOwnPackage@master",
],

我然后 pip install --upgrade -e .

Requirement already satisfied, skipping upgrade: 
MyOwnPackage@git+ssh://git@github.com/myusename/MyOwnPackage@master from 
git+ssh://****@github.com/myusename/MyOwnPackage@master in 
/opt/anaconda3/lib/python3.8/site-packages (from CurrentPackage==5.1.2) (0.0.1)

master 分支已经是 0.0.2。 它显然没有将 MyOwnPackage 升级到新的 master 分支提交,仍然停留在 0.0.1。

2 个答案:

答案 0 :(得分:1)

pip 不检查安装之间的远程引用是否已更改。这意味着指向一个移动的引用(就像你在这里)没有按预期工作。

我建议使用:

  • 特定的提交哈希或标签,在您想要进行升级时修改
  • 使用 --upgrade 调用 pip 以告诉它热切地环顾四周。
  • 将这些包转换为适当的发行版并使用 --find-links 或 --index-url 。

答案 1 :(得分:-1)

好的,我的结论是 可悲 列出 setup.py 中的私有依赖项 因为语法必须是

packagename @ git+ssh://git@github.com/myusename/packagename

简单地说

-e git+ssh://git@github.com/myusename/MyOwnPackage==0.0.2

在 requirements.txt 中