Pipenv 卡住“?正在锁定...”

Con*_*nor 27 python pip pipenv

安装 [numpy|opencv|pandas] 时,为什么我的 pipenv 卡在“锁定...”阶段?

运行时pipenv install pandaspipenv update挂起很长时间,并显示一条消息和加载屏幕,表明它仍在锁定。为什么?我需要做什么?

Con*_*nor 50

正在安装您的软件包并且正在构建您的轮子

也许更好的术语来描述这种状态是“构建和锁定......”或类似的东西。

如果您正在安装 numpy、opencv、pandas 或其他大型软件包,则特别有可能发生这种情况。

后台发生的事情pipenv是下载您的软件包并可能构建轮子。

在这种情况下,补救措施通常是给予足够的耐心。

什么是锁定?

要了解有关 pipenv 上下文中“锁定”的更多信息,您可以在此处阅读更多内容:https ://pipenv.kennethreitz.org/en/latest/basics/#pipenv-lock

$ pipenv lock 用于创建 Pipfile.lock,它声明项目的所有依赖项(和子依赖项)、它们的最新可用版本以及下载文件的当前哈希值。这确保了可重复的,最重要的是确定性的构建。

然而,有些时候,它是不是只是一个缓慢的/大的安装,但不是一个问题,你的Pipfile[.lock]。如果您相当确定这是问题pipenv lock --clear所在pipenv install,请尝试重新运行您的命令,还可以查看此线程以获取更多信息。

  • 尝试“pipenv lock --clear --verbose”,以便部署的每个包都显示在标准输出中。这对于查看它在哪里停滞很有用 (5认同)
  • 感谢!一个很好的解释,让我们真正了解正在发生的事情。耐心不是普通开发人员的标准技能。 (3认同)
  • 当我读到你的帖子时,我想起我的互联网连接很差(假期),抓取包裹可能需要一段时间。 (3认同)

Nic*_* K9 7

我刚才就遇到过这样的情况。Pipenv 永远陷入锁定状态,20 多分钟都看不到尽头,而且pipenv --rm没有任何帮助。

\n

最后,问题是我已经运行pipenv install "boto3~=1.21.14"boto3 = "==1.17.105". 但我还有其他相互冲突的要求(在我的例子中,botocore = "==1.20.105"s3transfer = "==0.4.2"),它们是 boto3 依赖项。新版本的 boto3 需要这两个软件包的较新版本,但==要求不允许这样做。Pipenv 没有解释这一点,只是永远旋转“Locking\xe2\x80\xa6”。

\n

因此,如果您遇到这种情况,我建议您仔细查看您的 Pipenv 软件包,看看是否存在任何明显的冲突,并尽可能放宽或删除软件包要求。

\n

就我而言,我能够从列表中完全删除 s3transfer 和 botocore 软件包,并依靠 boto3 来获取必要的版本。

\n