[Anaconda] 如何在conda下使用pip安装包
pip install [package]以及注意事项。
问题背景
conda
下载不到需要的包。
很多包只在
pip
有:PYPI有15万可用包,而Anaconda repository中(使用conda命令安装)提供了1,500多个软件包,Anaconda cloud上(使用conda-forge或bioconda命令安装)的几千种其他软件包。
操作指南
进入需要安装包的Python环境:
conda activate [your_env]
# eg: conda activate tensorflow_36
运行:
pip install [package]
# eg: pip install tensorflow
注意事项
1). 如果在一个环境env_a中用pip安装了某包,在env_b中可用吗?
不可用。
2). 如果在base中用pip安装安装了某包,在其他环境中可用吗?
可用,但不推荐。
base环境下安装的包供其他各个conda环境共享,此时可能会产生版本冲突问题:不同环境中可能对同一个包的版本要求不同。
感谢lordcat勘误:这个能共享的概念是错的,conda似乎只是以类似文件链接方式在子环境中实现base已安装包复用,实际如果子环境中不安装同版本是完全隔离的。pip实测更是完全隔离的。
3). 如何判断conda中某个包是通过conda还是pip安装的?
conda list
,用pip安装的包显示的build项目为pypi。
4). 当一个包可以用conda也可以用pip安装时,用哪个?
conda。
pip和conda在安装软件包时,满足环境中的依赖关系方面不同。pip在递归的串行循环中安装依赖项,不会确保同时满足所有软件包的依赖关系,如果按顺序较早安装的软件包相对于按顺序较晚安装的软件包具有不兼容的依赖项版本,则可能导致环境以微妙的方式被破坏掉;conda使用SAT(satisfiability)solver来验证是否满足环境中安装的所有软件包的所有要求,只要有关依赖项的软件包元数据正确,conda就会按预期产生可用的环境。
版本
conda 4.9.2 # 使用 conda --version
查看。
pip 20+ # 使用 pip --version
查看。不同Python环境可能安装了不同pip版本。
参考
更多推荐
所有评论(0)