You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Conda环境中使用pip安装requirements.txt依赖包耗时过长的问题求助

Conda环境中使用pip安装requirements.txt依赖包耗时过长的问题求助

我正在conda环境中尝试安装requirements.txt内的依赖包,文件内容如下:

amazon-braket-pennylane-plugin==1.1.0.post1
cvxopt==1.2.6
cvxpy==1.1.11
dill==0.3.3
ipywidgets==7.6.3
jupyter==1.0.0
jupytext==1.10.2
matplotlib==3.3.4
Mosek==9.2.40
notebook==6.2.0
numpy==1.19.5
pandas==1.2.2
pytest==6.2.2
scikit-learn==0.24.1
scipy==1.6.0
seaborn==0.11.1
sklearn==0.0
sympy==1.7.1
tqdm==4.57.0
widgetsnbextension==3.5.1
pennylane==0.16.0
pennylane-cirq==0.14.0
keras==2.4.3
tensorflow==2.4.1
rsmf==0.2

我使用的安装命令是:

pip install -r src/requirements.txt --upgrade

但安装过程已经持续了好几个小时,始终无法完成。从日志能看到,pip一直在反复下载不同版本的依赖包(比如pydantic、pyquil、google-api-core等),不断尝试寻找兼容的版本组合,日志里频繁出现这类提示:

INFO: pip is looking at multiple versions of pydantic to determine which version is compatible with other requirements. This could take a while.

我不清楚为什么会出现这种情况,有没有办法能让这些依赖包正常安装完成?


给你几个实用的解决思路,我之前处理过类似的依赖解析卡顿问题:

1. 切换回pip旧版依赖解析器

pip在20.3版本后启用了新的依赖解析逻辑,虽然更严谨但面对复杂依赖组合时会慢很多。你可以试试用旧版解析器,这通常能大幅缩短时间:

pip install -r src/requirements.txt --upgrade --use-deprecated=legacy-resolver

2. 先用conda搞定核心大依赖

既然你在conda环境里,别全靠pip。先把numpy、pandas、tensorflow这些大型依赖用conda安装好——conda的依赖处理在这类场景下更高效,剩下的小依赖再交给pip:

# 先安装conda支持的核心包(版本和你的requirements对齐)
conda install numpy=1.19.5 pandas=1.2.2 scikit-learn=0.24.1 matplotlib=3.3.4 tensorflow=2.4.1 keras=2.4.3
# 再安装剩余依赖
pip install -r src/requirements.txt --upgrade

3. 去掉--upgrade参数试试

你加了--upgrade会让pip强制检查所有包的最新版本,这会让依赖解析的工作量暴增。如果是新环境,完全不需要升级操作,直接去掉这个参数:

pip install -r src/requirements.txt

4. 建个干净的新环境试试

如果当前conda环境里已经有一些残留的包,可能会和新安装的依赖产生隐性冲突,导致pip反复尝试版本。不如直接建个全新环境:

conda create -n qhack_env python=3.8
conda activate qhack_env
pip install -r src/requirements.txt --upgrade

5. 手动补充依赖约束

从日志看,pip一直在反复尝试pydantic、pyquil这类包的不同版本,说明这些包的子依赖没有明确约束。你可以在requirements.txt里手动添加一些关键子依赖的固定版本,帮pip减少试探的次数。

备注:内容来源于stack exchange,提问作者sarika

火山引擎 最新活动