conda install和pip install区别

conda ≈ pip(python包管理) + virtualenv(虚拟环境) + 非python依赖包管理

级别不一样conda和yum比较类似,可以安装很多库,不限于Python。conda是创建一个局部的环境,并安装相应包;pip是安装包到原有的环境中。

 

请详细解释此句代码的意思:conda install -c conda-forge scikit-learn

这句代码是用于安装 scikit-learn 包的,其中的具体含义如下:

- `conda`: 这是一个流行的包管理器,用于安装、管理和更新软件包。它是 Anaconda 发行版的一部分,提供了一个简单而强大的方法来管理数据科学和机器学习工具的安装和环境。

- `install`: 这是 conda 包管理器的一个命令,用于安装指定的软件包或库。

- `-c conda-forge`: 这是指定安装源的参数。在这种情况下,`conda-forge` 是一个社区维护的 conda 渠道,提供了大量的开源软件包。通过 `-c conda-forge` 参数,我们告诉 conda 使用 conda-forge 渠道来查找和安装 scikit-learn。

- `scikit-learn`: 这是要安装的软件包的名称。scikit-learn 是一个用于机器学习和数据挖掘的 Python 库,提供了各种算法和工具,包括分类、回归、聚类、降维等。

当然,这句话是一个在conda环境中使用conda包管理器安装软件包的命令。让我们分解一下这个命令的各个部分:
1. **conda**: 这是一个开源的包管理系统和环境管理系统,用于安装和管理软件包及其依赖项。它可以在多种平台上使用,如Linux, macOS, Windows等。
2. **install**: 这是conda命令行工具的一个子命令,用于安装新的软件包。
3. **-c conda-forge**: 这是命令行的一个选项,其中`-c`代表`--channel`,后面跟着的是软件包的通道名称。`conda-forge`是一个社区驱动的conda包仓库,提供了大量预编译的软件包。使用`conda-forge`通道,意味着你将从该仓库而不是默认的Anaconda仓库中安装软件包。
4. **scikit-learn**: 这是你要安装的软件包名称。`scikit-learn`是一个强大的Python机器学习库,提供了许多机器学习和数据挖掘的算法。
综上所述,整个命令`conda install -c conda-forge scikit-learn`的意思是:在conda环境中,从`conda-forge`通道安装`scikit-learn`软件包及其依赖项。

 

pip install会检查一些依赖包并给你安装,而conda的这种检查更多,甚至会把你已有的卸了替换成他认为合适的...反正conda我只是拿来管理,安装一直是pip install...conda install真心不太喜欢乱检测乱适配....

1.pip只能安装python包,而conda可以安装由任何语言编写的包

2.pip不能创建虚拟环境,需要借助另外的包,例如virtualenv,而conda可以创建虚拟环境。

3.pip是按照python时自带的,而conda需要安装anaconda才能用。

pip pip install xxx,在特定环境里使用pip,下载的包会存在特定环境的目录里面,例如:
D:\Anaconda3\envs\nlp\Lib\site-packages\fasttext使用pip uninstallxxx,包就卸载掉了,也可以用
conda remove--name nlp--all 来删除环境
conda conda install xxx,不管在什么环境下载的包,都统一放在一个目录里面:
D:\Anaconda3\pkgs\fasttext这个fasttext里面也有site-packages文件夹
在某个环境下面下载了某个包,再到另外一个环境下载同样的包,conda会自动在上面的目录里面找,如果有,就不会重复下载,而是将这个包的site-packages下的文件复制到当前环境下(和直接pip install一样)使用conda uninstall xxx时,和pip uninstall一样,删除了当前环境site-packages里面的包内容,但是在上述目录里面还存在这这个包,此时再到另外一个环境下载这个包,还是将site-packages复制一份到当前环境下,做到了一次下载,到处使用。

参考:https://www.zhihu.com/question/395145313/answer/1230725052

pip是用来安装python包的,安装的是python wheel或者源代码的包。从源码安装的时候需要有编译器的支持,pip也不会去支持python语言之外的依赖项。

conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。然后,conda安装的都是编译好的二进制包,不需要你自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,conda不会。这导致了conda装东西的体积一般比较大,尤其是mkl这种,动不动几百兆甚至一G多。

然后,conda功能其实比pip更多。pip几乎就是个安装包的软件,conda是个环境管理的工具。conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。意味着你能用conda安装python解释器,pip不行。这一点我觉得是conda很有优势的地方,用conda env可以很轻松地管理很多个版本的python,pip不行。

然后是一些可能不太容易察觉的地方。conda和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这样做的话,conda基本上安上了就能保证工作,pip有时候可能装上了也不work。不过我个人感觉这个影响不大,毕竟主流包的支持都挺不错的,很少遇到broken的情况。这个区别也导致了安装的时候conda算依赖项的时间比pip多很多,而且重新安装的包也会更多(会选择更新旧包的版本)。

最后,pip的包跟conda不完全重叠,有些包只能通过其中一个装。

https://www.zhihu.com/question/395145313

conda可以安装的库都是Anaconda公司或第三方打包、编译,提交到anaconda服务器的,包括一些python库(肯定不全),也包括一些C++的库。可能还有R语言的?

pip就是python官方的包管理。

conda中包括一些C++库,一般都是和python的科学计算有关的。比如可以直接安装这些C++库:

  • conda install cudatoolkit
  • conda install mkl
  • conda install hdf5

当你通过conda安装TensorFlow的时候:

  • conda install tensorflow-gpu

你就获得了编译链接到cuda和mkl加持的tensorflow库,同时还有编译链接到mkl上的numpy。

参考:https://www.zhihu.com/question/395145313/answer/1247325175

posted on 2020-11-23 13:48  lmqljt  阅读(8989)  评论(0编辑  收藏  举报

导航