python包管理工具:Conda和pip比较

Posted pythontesting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python包管理工具:Conda和pip比较相关的知识,希望对你有一定的参考价值。

Conda和pip通常被认为几乎完全相同。虽然这两个工具的某些功能重叠,但它们设计用于不同的目的。 Pip是Python Packaging Authority推荐的用于从Python Package Index安装包的工具。 Pip安装打包为wheels或源代码分发的Python软件。后者可能要求系统安装兼容的编译器和库。

Conda是跨平台的包和环境管理器,可以安装和管理来自Anaconda repository以 Anaconda Cloud的conda包。 Conda包是二进制文件,需要使用编译器来安装它们。另外,conda包不仅限于Python软件。它们还可能包含C或C ++库,R包或任何其他软件。

这是conda和pip之间的关键区别。 Pip安装Python包,而conda安装包可能包含用任何语言编写的软件的包。在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。而Conda可以直接安装Python包以及Python解释器。

另一区别是conda能够创建可以包含不同版本的Python或其他软件包的隔离环境。在使用数据科学工具时,这非常有用,因为不同的工具可能包含冲突的要求,这些要求可能会阻止它们全部安装到单个环境中。 Pip没有内置的环境支持,而是依赖于virtualenvvenv 等其他工具来创建隔离环境。 pipenv,poetry和hatch wrap pip和virtualenv等工具提供了统一的方法来处理这些环境。

Pip和conda在如何实现环境中的依赖关系方面也有所不同。安装包时,pip会在递归的串行循环中安装依赖项。没有努力确保同时满足所有包的依赖性。如果较早安装的软件包与稍后安装的软件包具有不兼容的依赖性版本,则可能导致破坏的环境。conda使用可确保满足环境中安装的所有包的所有要求。此检查可能需要额外的时间,但有助于防止创建破坏的环境,前期关于依赖关系包的元数据是正确的。

考虑到conda和pip之间的相似性,有些人试图将这些工具结合起来创建数据科学环境也就不足为奇了。将pip与conda结合的主要原因是有些包只能通过pip安装。 Anaconda创酷提供超过1,500个软件包,包括最流行的数据科学,机器学习和AI框架。这些,以及包括conda-forge和bioconda在内的数据通过Anaconda云提供的数千个附加软件包,可以使用conda进行安装。尽管有大量的软件包,但与PyPI上提供的150,000多个软件包相比,它仍然很小。有时候需要的包没有conda包,但在PyPI上有,可以用pip安装。

参考资料

类别 conda pip
管理 二进制 wheel 或源码
需要编译器 no yes
语言 any Python
虚拟环境 支持 通过 virtualenv或venv等支持
依赖性检查 yes 屏幕提示用户选择
包来源 Anaconda repo和cloud PyPi

用conda创建python虚拟环境

 Anaconda+用conda创建python虚拟环境

 Anaconda与conda区别 

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身 Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。

 

1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。

2、conda常用的命令。

    1)conda list 查看安装了哪些包。

    2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境

    3)conda update conda 检查更新当前conda

3、创建Python虚拟环境。

     使用 conda create -n your_env_name python=X.X(2.7、3.6等) anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。

# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7

4、使用激活(或切换不同python版本)的虚拟环境。

    打开命令行输入python --version可以检查当前python的版本。

    使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。

    Linux:  source activate your_env_name(虚拟环境名称)

    Windows: activate your_env_name(虚拟环境名称)

   这是再使用python --version可以检查当前python版本是否为想要的。

5、对虚拟环境中安装额外的包。

    使用命令conda install -n your_env_name [package]即可安装package到your_env_name中

6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)。

   使用如下命令即可。

deactivate env_name,也可以使用`activate root`切回root环境
Linux下使用 source deactivate

7、删除虚拟环境。

  • 移除环境

   使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。

  • 删除环境中的某个包。

   使用命令conda remove --name $your_env_name  $package_name 即可。

8、设置国内镜像

如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可:

# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# TUNA的help中镜像地址加有引号,需要去掉

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

  

 

参考资料:

http://blog.csdn.net/lyy14011305/article/details/59500819

https://zhuanlan.zhihu.com/p/22678445

Anaconda 4.2 ---conda使用(Windows)

Anaconda使用总结

 



以上是关于python包管理工具:Conda和pip比较的主要内容,如果未能解决你的问题,请参考以下文章

使用 pip 或 conda 管理包? [复制]

Anaconda-用conda创建python虚拟环境

Anaconda入门

用conda创建python虚拟环境

Centos(Linux)中安装MiniConda管理Python以及Jupyter安装和使用

pip conda apt-get区别