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

Pipenv stuck "⠋ Locking..."

为什么我的pipenv在安装[numpy|opencv|pandas]时卡在了"Locking..."阶段?

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

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

也许更好的术语来描述这种状态是 'Building and Locking...' 或类似的东西。

如果您正在安装 numpy、opencv、pandas 或其他大型软件包,这种情况尤其容易发生。

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

这种情况下的补救措施通常是保持耐心。

什么是锁定?

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

$ pipenv lock is used to create a Pipfile.lock, which declares all dependencies (and sub-dependencies) of your project, their latest available versions, and the current hashes for the downloaded files. This ensures repeatable, and most importantly deterministic, builds.

但是,有时 不是 只是 slow/large 安装,而是您的问题Pipfile[.lock]。如果您相当确定这是问题所在,请尝试 pipenv lock --clear 并重新运行您的 pipenv install 命令,同时检查 this thread 以获取更多信息。

这是 pipenv 的未决问题 https://github.com/pypa/pipenv/issues/3827

我建议回到 pip

尝试做 pipenv --rm - 删除虚拟环境

然后 pipenv shell - 这将再次启动虚拟环境

然后 pipenv install 再次安装所有软件包

对我有用

对于尝试将 pipenv 与工作目录中现有的 requirements.txt 文件一起使用的人们,您可能会发现这个 Github post 有帮助。

注意:在尝试我展示的内容之前,我还使用了 pipenv --rm

HTH ;) P.S。在此向 Zebradil's script 大声疾呼,创建一个 requirements.txt,以防您与不使用 pipenv 的其他人合作。

我刚才遇到了这种情况。 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 获取必要的版本。