之所以会这样,
Requirement alreadysatisfied是因为如果您未通过
--upgrade或
-U(简写),则该软件包(如果已安装)不会被修改。
(命令的这一部分进行了 很多
讨论。在此处查看前4个问题)
有没有一种方法mypackage
可以使用requirements.txt文件仅升级特定软件包?
mypackage告诉它升级时,您只需要指定点子即可。如果只想更新请求,则pip命令为:
pip install --upgrade requests
同样,要从git存储库更新,您需要执行以下操作:
pip install --upgrade git+ssh://git@github.com/myuser/mypackage.git#egg=mypackage
由于这是一个URL很长,因此我建议您按照@daphtdazz的建议进行操作,请使用多个需求文件,如下所示:
requirements.txt
requests~=2.12.3simplejson~=3.10.0-r git_requirements.txt
git_requirements.txt
git+ssh://git@github.com/myuser/mypackage.git#egg=mypackage
另外,我建议您对shell使用shell别名以减轻键入负担。
alias pip_git_upgrade="pip install --upgrade -r git_requirements.txt"
我需要指定#egg=mypackage
吗?
引用pip的官方文档:
任何URL都可以使用#egg = name语法来明确声明项目名称。
基本上,使用
#egg=mypackage是个好主意,因为您要使项目名称明确。



