gpt4 book ai didi

python - 为什么 pip 安装我的包的旧版本?

转载 作者:IT老高 更新时间:2023-10-28 21:39:11 30 4
gpt4 key购买 nike

我刚刚将我的包的新版本上传到 PyPi (1.2.1.0-r4):我可以下载 egg 文件并使用 easy_install 进行安装,并且版本检查正确。但是当我尝试使用 pip 安装时,它会安装 1.1.0.0 版本。即使我使用 pip install -Iv tome==1.2.1.0-r4 明确指定要 pip 的版本,我也会收到以下消息:Requested tome==1.2.1.0-r4, but installed版本 1.1.0.0,但我不明白为什么。

我仔细检查了 parse_version 并确认 1.2.1 上的版本字符串大于 1.1.0 上的版本字符串,如图所示:

>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>

那么知道为什么它选择安装 1.1.0 吗?

最佳答案

这是一个很好的问题。我花了很长时间才弄清楚。这是适合我的解决方案:

显然,如果 pip 可以找到包的本地版本,则 pip 将更喜欢本地版本而不是远程版本。我什至断开了我的计算机与互联网的连接并再次尝试 - 当 pip 仍然成功安装了软件包,甚至没有提示,来源显然是本地的。

就我而言,真正令人困惑的部分是 pippypi 上找到了较新的版本。 ,报告了他们,然后继续并重新安装了旧版本... arggh。此外,它没有告诉我它在做什么,以及为什么。

那么我是如何解决这个问题的呢?

您可以使用 -v 标志让 pip 提供详细的输出...但仅此一项还不够。我 RTFM 编辑了帮助,它说您可以执行 -v 多次,最多 3 次,以获得更详细的输出。所以我做了:

pip install -vvv <my_package>

然后我查看了输出。一行引起了我的注意:

Source in /tmp/pip-build-root/ has version 0.0.11, which satisfies requirement <my_package>

我删除了那个目录,之后 pip 从 pypi 安装了最新版本。

关于python - 为什么 pip 安装我的包的旧版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617136/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com