Python中conda与pip不能共存的问题如何解决?
>>> conda list
>>> pandas 0.20.3 py36_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free>
>>> pandas 0.22.0 <pip>
先用 pip 安装了 pandas
然后为了安装 statsmodels,conda 把 pandas 回滚到了0.20.3版
虽然显示有0.22.0版的
但 Anaconda3\Lib\site-packages\pandas 目录下却变成了0.20.3版的了
→→conda 与 pip 不能共存
Python中conda与pip不能共存的问题如何解决?
2 回复
核心问题: 你的环境里conda和pip的包管理打架了,通常是路径混乱或者安装源不一致导致的。
最直接的解决方案:
- 永远优先使用conda安装。在conda环境里,先用
conda install [包名]。很多包在conda-forge频道都有。 - 如果conda里确实没有某个包,再用pip安装,但务必确保pip是在当前conda环境下的。激活环境后,用
which pip(Linux/Mac) 或where pip(Windows) 检查,路径应该指向你的conda环境目录,比如~/miniconda3/envs/your_env/bin/pip。如果不是,就用conda install pip重新在环境里装一个pip。 - 安装时加个
--no-deps选项有时能避免冲突,但后续可能缺依赖:pip install --no-deps [包名]。
一劳永逸的代码示例(创建干净环境并正确使用pip):
# 1. 创建新环境,并指定Python版本
conda create -n my_project python=3.9 -y
conda activate my_project
# 2. (关键步骤)在环境内重新安装pip,确保绑定到当前环境
conda install pip
# 3. 验证pip的路径是否正确(应显示conda环境下的路径)
which pip # Linux/Mac
# 或
where pip # Windows
# 4. 优先用conda安装包
conda install numpy pandas
# 5. 如果conda没有,再用这个环境里的pip安装
pip install some_conda_not_having_package
如果已经搞乱了怎么办: 导出环境配置,重建是最快的:
# 导出当前环境的conda包列表(不含pip装的)
conda env export --from-history > environment.yml
# 删除旧环境
conda deactivate
conda env remove -n your_env_name
# 根据文件创建新环境
conda env create -f environment.yml
总结: 核心就一句:在conda环境里,用conda装的pip去安装conda没有的包。
这样能保证包都由conda统一管理,避免依赖地狱。
conda clean --all 有木有效果?

