Pipenv 卡住“⠋ 正在锁定...”
Pipenv stuck "⠋ Locking..."
为什么我的pipenv在安装[numpy|opencv|pandas]时卡在了"Locking..."阶段?
当 运行 pipenv install pandas
或 pipenv 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 获取必要的版本。
为什么我的pipenv在安装[numpy|opencv|pandas]时卡在了"Locking..."阶段?
当 运行 pipenv install pandas
或 pipenv 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 获取必要的版本。