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的包管理打架了,通常是路径混乱或者安装源不一致导致的。

最直接的解决方案:

  1. 永远优先使用conda安装。在conda环境里,先用 conda install [包名]。很多包在conda-forge频道都有。
  2. 如果conda里确实没有某个包,再用pip安装,但务必确保pip是在当前conda环境下的。激活环境后,用 which pip (Linux/Mac) 或 where pip (Windows) 检查,路径应该指向你的conda环境目录,比如 ~/miniconda3/envs/your_env/bin/pip。如果不是,就用 conda install pip 重新在环境里装一个pip。
  3. 安装时加个 --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 有木有效果?

回到顶部