天天看点

Python库管理工具pip和conda的区别

作者:羞羞的奥特曼
Python库管理工具pip和conda的区别

AI生成的图片

pip和conda是两个最流行的python库的管理工具,大家一般都用他们来安装和管理第三方库。我在安装python库时经常看到pip和conda两种安装方式,我一般总是直接选择pip的安装方式。虽然很少使用conda,但是conda确实是非常好的库管理工具,于是决定好好研究下他们的区别。

本文将简单的介绍一下pip和conda区别和使用选择。

pip管理工具

pip是Python官方提供的库管理工具,python3.4版本以后pip已经被集成在python的安装文件中,如果你使用更老的版本,那么你需要手动安装它。

使用pip安装库的方式非常简单,只需要在命令行中执行以下命令:

pip install  库名           

例如

pip install numpy           

执行命令后,pip会自动从PyPI下载并安装所需的库及其依赖项。

如果你想要安装特定版本的库,可以使用以下命令:

pip install 库名==版本号
#例如
pip install requests==2.26.0           

什么是conda

conda 是一个可以在 Windows、Mac OS 和 Linux 上运行的跨平台的开源包和环境管理系统,可以快速安装、运行和更新第三方库和相关依赖项,并可以在本地计算机上创建、保存、加载和切换特定于项目的软件环境。

conda不仅可以管理Python库,也可以为很多其他语言打包和分发软件,如R,RubyJava,JavaScript,C,C++等。

conda有三种安装方式:

  • 安装Anaconda 发行版,Anaconda包含了conda工具,还有很多其他的工具和库,这也意味着Anaconda的安装包非常大,安装时间非常长。
  • 安装miniconda,它是一个更小的 conda 安装程序,只包括了包括 conda 工具,python及其依赖项,安装包体积非常小。
  • 如果你已经安装好了python,可以使用pip命令只安装conda工具
pip install conda           

conda,minconda,anaconda的关系如下图所示:

Python库管理工具pip和conda的区别

conda,minconda,anaconda的关系

conda安装库的方式也非常简单,只需要在命令行中输入如下命令

conda install 库名           

明确安装版本使用如下方式

conda install 库名=版本           

pip和conda的对比

  • pip用来安装来自PyPI(pypi.org)的python库,使用pip前你必须同时也安装了python环境。pip安装有两种方式从源代码构建或者直接使用编译好的wheel安装包。因此当从源码安装时,例如在Windows系统上安装包你需要提前安装Virtual C++的编译环境。
  • conda安装来自anaconda 库(repo.anaconda.com),conda包是提前编译好的各个平台的二级制文件,因此你的电脑上不需要有编译器等软件。此外conda库不仅包含Python库,也包含C,C++,R等其他语言的库。
  • pip从源代码编译时不能解决第三方库(例如C语言库的依赖问题),pip的解决方式是使用wheel的安装包来安装,本质上wheel只是一个压缩包,你可解压后查看包内的文件, wheel安装包内可以放入第三方的库依赖。
  • conda有内置的虚拟环境支持,pip需要安装virtualenv或者venv第三方库来创建虚拟环境。另一个不同是他们在安装库是的依赖关系检测不同,pip安装包时使用递归的串行循环来安装依赖项。安装时不保证安装的库的依赖关系是满足的,这造成了安装库时可能由于依赖关系版本不满足造成库无法运行。而conda安装库时,检查库的依赖关系,确保环境中安装的库满足依赖关系要求。
  • conda拥有超过1500的主流库,包含了主流的数据科学,机器学习的库。但是pypi却拥有超过20万的库。当你需要的没有在conda中,这时你就需要使用pip来安装它。

使用 pip 还是 conda

实际上使用pip或者conda都很好,都能很好的完成你的工作,但最好可以将他们结合起来使用。

对于一些安装和编译非常复杂的库,例如tensorflow ,尤其是gpu版本的tensorflow,直接从源码安装可能会浪费你很多的时间,甚至因为安装不通过让你放弃了这个学习。

推荐对于复杂的构建库推荐优先使用conda安装,对于一些常规相对简单的库推荐优先使用pip进行安装,毕竟conda内的库数量比较少。

举例安装gpu版本的tensorflow

使用pip安装时你需要的过程如下:

  1. 安装GPU显卡驱动
  2. 安装CUDA SDK
  3. 安装对应CUDA版本的cudnn
  4. 通过pip命令安装tensorflow
pip install tensorflow           

使用conda安装tensorflow时的步骤如下

  1. 安装GPU显卡驱动
  2. 使用conda 命令安装tensorfow
conda install tensorfow           

但在实际上使用pip安装tensorflow会面临很多异常失败的情况,而conda是安装编译好的二级制包,相对来说安装更为简单,同时免去了你安装cuda和cudnn的问题。