Conda 如何管理 `conda` 和 `pip` 安装的软件

Conda 如何管理 condapip 安装的软件?

conda 环境中,你既可以使用 conda install 安装软件,也可以使用 pip install 安装软件。conda 会同时管理这两种不同的安装方式,并且它们的行为存在一些重要区别。


1. conda list 是否显示 pip 安装的软件?

是的,conda list 可以 显示使用 pip install 安装的软件。
当你在 conda 环境中使用 pip 安装软件后,pip 安装的软件会出现在 conda list 的列表中,并且会被标注为 pypi 来源。

示例

  1. conda 环境中安装 numpyscipy

    conda install numpy
    pip install scipy
    
  2. 运行 conda list

    conda list
    

    示例输出

    # packages in environment at C:\Users\User\miniconda3\envs\myenv:
    #
    numpy                     1.21.2          py39h7a5dc32_0
    pip                       21.2.4          py39haa95532_0
    scipy                     1.7.1           pypi_0    pypi  # <--- pip 安装的
    
    • numpy 是用 conda 安装的,来源是 conda-forgedefault 频道。
    • scipy 是用 pip 安装的,来源是 pypi,所以 conda list 会标注它来自 pypi

2. conda 如何管理 pip 安装的软件?

conda 本身不会直接管理 pip 安装的软件,但 pip 安装的软件会安装到 conda 环境的 site-packages 目录下,因此 conda list 仍然可以检测到它们。

两者的主要区别

特性 Conda 安装 Pip 安装
Conda 仓库 (conda-forge, defaults) PyPI (pypi.org)
依赖管理 自动解决依赖冲突 可能引发依赖冲突
安装位置 Conda 环境的 pkgs/ 目录 Conda 环境的 site-packages/ 目录
管理工具 conda list, conda remove pip list, pip uninstall

3. pip 安装的软件是否可以用 conda remove 卸载?

不可以! conda remove package_name 只能卸载 conda 安装的软件,如果你用 pip 安装了软件,必须使用:

pip uninstall package_name

4. 在 conda 环境中,推荐使用 conda 还是 pip

推荐优先使用 conda

  • 原因conda 可以更好地管理依赖,避免版本冲突。
  • 例如,如果你想安装 scipy,最好用:
    conda install scipy
    
    而不是:
    pip install scipy
    

什么时候使用 pip

  • 如果 conda 没有某个软件,比如 transformers,可以使用 pip
    pip install transformers
    
  • 某些 Python 轮子(wheels)只在 PyPI 上有,比如某些深度学习库。

最佳实践:先 conda,后 pip

建议的安装顺序

  1. 先安装 conda 可用的软件
    conda install numpy scipy matplotlib
    
  2. 再安装 pip 需要的软件
    pip install somepackage
    

⚠️ 注意:在 conda 环境中使用 pip install 可能会破坏 conda 的依赖管理。如果用 pip 安装后发现问题,可以运行:

conda install --force-reinstall -n myenv conda

或者重新创建环境:

conda remove -n myenv --all
conda create -n myenv python=3.9

总结

  1. conda list 可以显示 pip 安装的软件,但会标注为 pypi
  2. conda remove 不能卸载 pip 安装的软件,需要用 pip uninstall
  3. 优先使用 conda install,如果 conda 找不到软件,再用 pip install
  4. 使用 conda install 避免依赖冲突,避免 pip 破坏 conda 的环境。
posted @   立体风  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示