conda环境已存在rdkit包,为何pip仍重复安装?
问题分析
conda环境中已通过conda-forge安装了rdkit和mordred,但执行pip install -e .时,pip仍会重复安装同版本的rdkit,核心原因是pip与conda的包元数据存储格式不兼容:pip无法识别conda安装的rdkit包,会判定该依赖未被满足,因此从PyPI重新安装一份。
解决方案
方案1:跳过依赖安装(最简便)
直接执行带--no-deps参数的安装命令,跳过依赖检查与安装——你的conda环境已经满足所有依赖,无需重复安装:
pip install -e . --no-deps
方案2:改用conda开发模式安装
如果你的包主要在conda环境中使用,用conda自带的开发安装方式,彻底避免pip与conda的依赖冲突:
conda develop .
方案3:让pip识别conda安装的rdkit
先确认conda环境的pip能否识别rdkit:执行pip list | grep rdkit,如果无输出,说明pip未识别到conda安装的包。此时可手动将conda的rdkit包注册到pip中:
- 找到conda环境中rdkit的安装路径,示例路径为
$CONDA_PREFIX/lib/python3.9/site-packages/rdkit(需替换为你环境的实际路径) - 进入该路径并生成pip可识别的元数据:
cd $CONDA_PREFIX/lib/python3.9/site-packages/rdkit python setup.py egg_info
之后再执行pip install -e .,pip就能识别到已安装的rdkit,不会重复安装。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

