Conda 如何管理 `conda` 和 `pip` 安装的软件
Conda 如何管理 conda
和 pip
安装的软件?
在 conda
环境中,你既可以使用 conda install
安装软件,也可以使用 pip install
安装软件。conda
会同时管理这两种不同的安装方式,并且它们的行为存在一些重要区别。
1. conda list
是否显示 pip
安装的软件?
是的,conda list
可以 显示使用 pip install
安装的软件。
当你在 conda
环境中使用 pip
安装软件后,pip
安装的软件会出现在 conda list
的列表中,并且会被标注为 pypi
来源。
示例
-
在
conda
环境中安装numpy
和scipy
:conda install numpy pip install scipy
-
运行
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-forge
或default
频道。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
建议的安装顺序:
- 先安装
conda
可用的软件:conda install numpy scipy matplotlib
- 再安装
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
总结
conda list
可以显示pip
安装的软件,但会标注为pypi
。conda remove
不能卸载pip
安装的软件,需要用pip uninstall
。- 优先使用
conda install
,如果conda
找不到软件,再用pip install
。 - 使用
conda install
避免依赖冲突,避免pip
破坏conda
的环境。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下