1. 包管理系统
-
conda install
:- 属于Conda包管理器的一部分。
- 安装的是Conda生态中的包,优先使用预编译的二进制包(特别适合科学计算和机器学习)。
- Conda包通常会自动解决依赖问题,包括与Python版本的兼容性。
- 包含不仅限于Python的包,例如C/C++库(如MKL、OpenCV等)。
-
pip install
:- 属于Python生态的一部分。
- 安装的是Python Package Index(PyPI)中的包。
- 更适合纯Python实现的包,通常不包含非Python依赖(如系统级依赖库)。
- 可能需要手动解决依赖冲突。
2. 使用场景
-
推荐使用
conda install
的情况:- 安装数据科学和深度学习相关的库(如PyTorch、TensorFlow、NumPy、Pandas等),因为Conda通常包含这些库的优化版本(比如MKL加速的NumPy)。
- 需要在虚拟环境中同时管理Python和非Python依赖。
-
推荐使用
pip install
的情况:- 如果Conda中找不到需要的库(比如一些开源项目或新发布的包)。
- 安装纯Python库(如
Flask
、Django
、requests
等)。 - 配合
requirements.txt
文件安装Python项目依赖。
3. 优先级
在Conda虚拟环境中,建议优先使用conda install
,因为它会:
- 更好地管理依赖关系。
- 确保安装的包经过优化并与Conda环境兼容。
只有当Conda找不到你需要的包时,才考虑使用pip install
。
4. pip
和conda
混用的注意事项
如果必须混用,建议按以下顺序操作:
- 先使用
conda install
安装Conda包,以设置基础环境。 - 然后使用
pip install
安装pip
无法找到的包。
运行以下命令以确保pip
安装的包与Conda环境兼容:
复制代码
conda install pip
pip install <package>
5. 检查包来源
你可以通过以下方式检查已安装的包是通过conda
还是pip
安装的:
conda list
在输出中:
conda-forge
或defaults
:表示通过conda
安装。pypi
:表示通过pip
安装。
总结
- 优先使用
conda install
,因为它更稳定且能解决复杂的依赖。 - 备用使用
pip install
,当Conda中没有目标包时使用。 - 混用时,请谨慎管理依赖,先
conda install
,后pip install
。