【一文理解】conda install & pip install 区别

7 篇文章 0 订阅

大部分情况下,conda install & pip install 二者安装的package都可以正常work,但是混装多种package后容易版本冲突,出现各种报错。

目录

检查机制

支持语言

库的位置

环境隔离

编译情况


检查机制

conda有严格的检查机制,会配套安装依赖,能够保证当前安装的package安装好后能work,但是conda只检查用conda安装的package。例如,新安装的package需要依赖numpy ,本地已有使用pip安装的numpy(1.19.2),conda在新安装package时可能会视为没有numpy,然后通过conda再安装一个依赖版本的numpy(1.18.5)。这时候,两个numpy就会冲突。甚至报错DLL load failed: 找不到指定的模块。

pip的检查机制相对宽松,可以既检查conda安装过的package的也检查pip安装过的package。并不保证当前环境的所有包的所有依赖关系都同时满足。当某个环境所安装的包越来越多,产生冲突的可能性就越来越大。

支持语言

conda 是跨平台的通用包和环境管理器,可以支持多种语言,除了Python和R,conda还支持Ruby、Lua、Scala、Java、JavaScript、C/C++、Fortran等多种编程语言,以及大部分生信软件的安装。

pip 是 python 官方推荐的包下载工具,它专注于为Python用户提供软件包安装、更新和卸载的功能。因此,pip主要支持的语言是Python。通过pip,Python用户可以轻松地从Python Package Index(Python包索引)中获取并安装所需的软件包。

综上所述,conda和pip在支持的语言方面有所不同。conda以其广泛的编程语言支持而著称,而pip则专注于Python语言的软件包管理。用户可以根据自己的需求和所使用的编程语言来选择合适的软件包管理工具。

库的位置

conda install:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

pip install:分两种情况,如果当前conda环境使用系统的的python,则库会被保存在 ~/.local/lib/python3.x/site-packages文件夹中;如果使用的是当前conda环境内置的python,则库会被保存到 anaconda3/envs/current_env/lib/site-packages中

环境隔离

conda 可以直接创建隔离的环境,例如conda create -n 环境名 python=3.6。conda通过在系统中创建独立的文件夹来实现环境隔离。每个环境都有自己的Python解释器、库和二进制文件。当激活一个conda环境时,conda会修改系统的环境变量,使得运行Python或相关工具时,实际上是在当前环境中运行。

  • conda可以管理多个Python版本,即使版本不同也能实现环境隔离。
  • conda的环境导出和复制功能使得在不同机器上复制相同环境变得简单。

pip 没有内置支持环境隔离,只能借助其他工具例如virtualenv or venv实现环境隔离,virtualenv和venv可以创建独立的Python虚拟环境,每个环境都有自己的Python解释器和库。

  • 使用virtualenv或venv创建虚拟环境后,用户可以在该环境中独立地安装和管理第三方库。
  • 激活虚拟环境后,pip会自动将第三方库安装到虚拟环境中,而不会影响到全局的Python环境。

编译情况

conda在安装软件包时,会尝试自动解决依赖关系,并下载和编译所需的依赖包。对于预编译的包(如二进制包),conda会优先使用这些包以加快安装速度。如果conda无法找到预编译的包,它可能会尝试从源代码编译软件包,但这通常不是其主要功能。

  • conda允许用户指定编译选项和配置,例如使用特定的编译器版本、启用或禁用特定的编译特性等。
  • 这些选项通常通过conda的构建脚本或配置文件来设置。

pip 里的软件包为wheel版或者源代码发行版。wheel属于已编译版的一种,但而源代码发行版必须要经过编译生成可执行程序后才能使用。pip在安装软件包时,也会尝试解决依赖关系,但它通常不会从源代码编译依赖包,而是下载已编译的二进制包(如果可用)。如果pip无法找到已编译的二进制包,它可能会尝试从源代码编译软件包,但这需要用户具备相应的编译环境和工具。

  • pip允许用户通过命令行选项或环境变量来指定编译选项和配置。
  • 然而,与conda相比,pip的编译选项和配置可能更加有限和复杂。

 

conda installpip install在安装包时有一些区别。首先,conda install是Anaconda发行版中的包管理工具,而pip installPython的包管理工具。 一个主要的区别是它们的软件包源。conda install可以从Anaconda存储库中安装包,这个存储库包含了1500多个数据科学、机器学习和AI框架等流行的软件包。此外,Anaconda云上还提供了数千个其他软件包可以使用conda进行安装。然而,与PyPI上提供的超过150,000个软件包相比,Anaconda存储库的规模仍然相对较小。因此,当需要安装PyPI上可用但不作为conda软件包提供的软件包时,可以使用pip install来安装。 另一个区别conda install不仅可以安装Python包,还可以安装Python解释器本身。这意味着在使用conda install时,可以直接安装Python包和Python解释器。而pip install在使用之前需要事先安装好Python解释器。 综上所述,conda installpip install在软件包源和安装范围方面存在区别conda install可以使用Anaconda存储库安装包,并且可以安装Python解释器,而pip install可以从PyPI上安装更多的软件包。在实际使用中,通常将condapip结合使用,以满足不同的安装需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [conda installpip install区别](https://blog.csdn.net/cuguanren/article/details/125589164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F_D_Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值