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

新手上路,请多包涵

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

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

原文由 Connor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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

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

如果您正在安装 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 命令,同时检查 此线程 以获取更多信息。

原文由 Connor 发布,翻译遵循 CC BY-SA 4.0 许可协议

我刚才遇到了这种情况。 Pipenv 一直卡在锁定状态,20 多分钟,看不到尽头,而且 pipenv --rm 没有帮助。

最后,问题是我运行了 pipenv install "boto3~=1.21.14"boto3 = "==1.17.105" 升级 boto3。但我还有其他相互冲突的要求(在我的例子中, botocore = "==1.20.105"s3transfer = "==0.4.2" ),它们是 boto3 依赖项。新版本的 boto3 需要这两个包的更新版本,但 == 要求不允许这样做。 Pipenv 没有对此进行解释,只是一直旋转着“正在锁定……”。

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

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

原文由 Nick K9 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题