为什么我的pipenv在安装[numpy|opencv|pandas]时卡在“Locking...”阶段?
运行
pipenv install pandas
或 pipenv update
时,它会挂起很长时间,并显示一条消息和加载屏幕,表明它仍处于锁定状态。为什么?我需要做什么?
也许描述这种状态的更好术语是“构建并锁定...”或类似的术语。 如果您正在安装 numpy、opencv、pandas 或其他大型软件包,这种情况尤其可能发生。
后台发生的事情是,pipenv 正在下载您的软件包,并且可能正在构建轮子。
这种情况下的补救措施通常是极大的耐心。什么是锁定?
但是
,有时不只是一个缓慢/大型的安装,而是您的Pipfile[.lock]
的问题。如果您相当确定这是问题所在,请尝试
pipenv lock --clear
并重新运行 pipenv install
命令,另请检查 此线程以获取更多信息。
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 --rm
- 删除虚拟环境
然后pipenv shell
- 这将再次启动虚拟环境
然后pipenv install
再次安装所有软件包
为我工作
pipenv
与工作目录中现有的
requirements.txt文件一起使用的人们,您可能会发现这个 Github 帖子 有帮助。 注意:在尝试我所展示的内容之前,我还使用了
pipenv --rm
。
HTH;) 附:在此向 Zebradil 的脚本 致敬,以创建 requirements.txt,以防您与不使用 pipenv
的其他人协作。
--verbose
末尾使用
pipenv install
发现它在使用 git clone --quiet
从私人存储库克隆时挂起。事实证明 git 正在要求提供凭据,但这似乎隐藏在终端中,可能是由 pipelinev 隐藏的。我输入了我的凭据(github 令牌),它起作用了。