conda 和 pip 的具体区别
conda 和 pip 的设计区别
-
conda:
conda 是一个与语言无关的跨平台的软件包和环境管理工具,它不仅适用于管理Python包,还可以创建、管理任何类型的、用任何语言写的包和依赖。安装的都是编译好的二进制包,不需要编译。conda允许在conda环境中安装任何语言包。
-
pip
pip 是Python包管理工具,且只能管理Python包,安装的是python wheel或者源代码的包,从源码安装的时候需要有编译器的支持。pip允许在任何环境中安装python包。
-
相辅相成
一般都是将conda 和 pip 结合使用,因为有些包只能通过pip安装(conda可安装的包的数量要远小于pip;conda可安装的包括Anaconda存储库的1500多个包以及云上提供的数千个包,而pip有超过150000个包可安装),而conda可以安装除python外的其他包。
conda install 和 pip install python包的区别
-
conda install
安装包时,会列出所需的其他依赖包,并会附带安装这些依赖包
conda 会把python也看成包,可以使用conda修改环境中的python版本
-
pip install
安装包时不会自动安装所需的其他依赖包,只是在缺少其他依赖包时作错误提示,这时需要手动安装其他依赖包
pip 不会将python看成包,不能对环境中的python进行多余的操作
注意:
pip install -i
-i 参数表示指定镜像源(官方(一般是国外的)的下载源的一个镜像,一般是国内的,用以加快下载速度)
pip install -f
-f 参数表示从指定url文件中查找包的下载链接,这个url可以指向国内的服务器,国外的服务器,或者本地服务器都可以。
(某些时候 -f 和 -i 都可以达到我们的目的)
conda list和 pip list 的区别
-
conda list
conda下载的包会优先下载到关联文件夹中,然后查看pip下载路径下的安装文件,如果相应目录下没有该文件,将会将关联文件中的包的索引挪到pip下载的安装文件夹下,或者将包复制过去。
而conda list会显示虚拟环境下的和关联文件中的包和对应的版本
-
pip list
只会显示虚拟环境下的包和对应的版本
即pip list是conda list 的子集
注意:
pip3 和 pip : 如果环境中只有Python2,则只能只用pip; 若只有Python3,那么既可以使用pip 也可以使用 pip3,且二者等价; 若既有Python2 又有 Python3, 则pip默认管理Python2 的包,pip3默认管理Python3 的包。
pip3 list 和 pip list: 在虚拟环境中,使用which pip 和 which pip3 可以查看pip 和 pip3 的目录位置,如果此时其都是虚拟环境的位置,则其都可以显示虚拟环境的pip 安装的包(虚拟环境只安装了python3时),若其中一个(假设为pip)对应上的是base环境,则pip list显示的是base环境中的pip安装的包。