概况
它们都是包管理器(package manager),包管理器允许允许用户在操作系统上安装、删除、升级、配置和管理软件包。
(此部分参考了此链接(关于包管理器)和此链接(有关pip和conda))
软件包管理器可以是像“软件中心”这样的图形化应用,也可以是像 apt-get 或 pacman 这样的命令行工具。
conda
是一个通用的包管理器,主要是python的包,但是还有其它语言的包。
而pip安装的是python wheel或者源代码的包。 从源码安装的时候需要有编译器的支持,pip也不会去支持python语言之外的依赖项。
conda
安装的都是编译好的二进制包,不需要自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,而conda不会——这也导致了conda装东西的体积一般比较大(就像我今天一下午才下完一个mkl文件)。
在conda环境中,可以使用pip进行安装,并且安装之后是会显示在conda环境中的,而pip list中只有pip安装的内容
pip的下载界面相较于conda较为美观
pip
是安装wheel
的包管理器。 wheel
的直接好处是我们与其他人共享我们的包,他们不必担心构建它。 他们只需pip install
后即可使用该软件包。 它也是一个更小的共享文件(与所有源代码相比),安装速度更快,因为它不需要运行安装脚本。
例如pytorch就提供了两种安装方式conda和wheel(也就是pip):
需要注意到的是,使用 conda
安装 torch + cuda
的时候会自动安装 cudatoolkit
,但是 pip
不会,因此其实选用 conda
来安装其实环境配置得更完全。