如何使用Pip强制升级未升级的包?

3 投票
2 回答
4655 浏览
提问于 2025-04-16 04:41

当我们使用一个包含固定版本的 requirements.txt 文件来运行 Pip 时,可能会遇到以下错误(或类似的错误):

VersionConflict: (solrpy 0.9.1 
(.../lib/python2.6/site-packages/solrpy-0.9.1-py2.6.egg),
    Requirement.parse('solrpy==0.9.3'))

这是因为版本之间发生了冲突。使用 pip install -U -r requirements.txt 可以解决这个问题,但这样做会强制我们重新下载所有的包。Pip 的一个好处是它会知道哪些包已经安装过,不会重复下载或安装。

有没有什么办法可以避免这个问题呢?我想要的是一种“软升级”,也就是说只有在包之间发生冲突时才进行升级。

2 个回答

-1

单独升级solrpy这个包:

pip install -U --no-deps solrpy

我觉得你可能可以省略--no-deps这个参数,但如果你遇到问题,建议先试试这个,然后再试第二个:

pip install -U solrpy

我认为没有办法直接从requirements.txt文件中更新已经安装的高版本包。

1

看起来这个问题有一个未解决的bug:http://bitbucket.org/ianb/pip/issue/13/

撰写回答