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的关系如下图所示:
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安装时你需要的过程如下:
- 安装GPU显卡驱动
- 安装CUDA SDK
- 安装对应CUDA版本的cudnn
- 通过pip命令安装tensorflow
pip install tensorflow
使用conda安装tensorflow时的步骤如下
- 安装GPU显卡驱动
- 使用conda 命令安装tensorfow
conda install tensorfow
但在实际上使用pip安装tensorflow会面临很多异常失败的情况,而conda是安装编译好的二级制包,相对来说安装更为简单,同时免去了你安装cuda和cudnn的问题。