Python常见概念-0

敖炜 Lv5

pip、venv、conda和Anaconda的作用与关系

pip、venv、conda和Anaconda是学习Python过程中经常听到的名词,但是对于它们各自的作用和相互之间的关系有点模糊,今天把这些具体概念厘清一下

pip的简介

  • pip(Python Install Packages)是Python官方认证的Python包通用管理器,只能够管理python包,常用于安装发布在PyPI(Python Package Index)上的包。pip和PyPI均由PyPA(Python Packaging Authority)管理和支持。
  • pip可以在任何环境中安装包,但是只能安装Python包,无法安装和管理某些Python包所依赖的外部包
  • 管理的是wheel或者源码,因此需要编译器对源码进行编译,对于一些缺少编译环境的设备,这是一个不方便的地方

venv的简介

“venv 模块支持创建轻量的“虚拟环境”,每个虚拟环境将拥有它们自己独立的安装在其 site 目录中的 Python 软件包集合。 虚拟环境是在现有的 Python 安装版基础之上创建的,这被称为虚拟环境的“基础”Python,并且还可选择与基础环境中的软件包隔离开来,这样只有在虚拟环境中显式安装的软件包才是可用的。
当在一个虚拟环境内使用时,常见安装工具如 pip 将把 Python 软件包安装到虚拟环境中而无需显式地指明这一点。”
————摘自官方文档

  • virtualenvs是可创建的Python虚拟环境,在不同虚拟环境下的python包相互独立,但是不同环境下用的python是同一个版本(即虚拟环境外部的版本),必须基于一个已经存在的、有外部管理的python可执行文件
  • 因此,pip + venv实现了python的包管理 + 环境管理。但是这个组合仅限于python包,对其外部依赖不太可行;其次这个组合必须使用相同的Python解释器版本

conda的简介

  • Conda是一个与开源的、语言无关的、跨平台的包和环境管理器,可以创建、管理任何类型的、用任何语言写的包和依赖。
  • Conda只能在conda创建的环境中安装包,无法在一个已有的系统Python环境中安装Python包
  • conda管理包的二进制文件,不需要编译器,对于未安装编译环境的设备友好,包的来源是Anaconda repo(repo.anaconda.com)和Cloud
  • conda创建的虚拟环境与venv不同,在conda环境中,我们可以管理不同版本的Python,可以在不同环境中安装和升级Python本身,不同环境下的包相互独立
  • conda可以跟踪非Python的依赖

Anaconda的简介

  • Anaconda是一个软件发行版,使用conda作为默认的包和环境管理器,同时包含了Python本身和数百个第三方开源项目的二进制文件
  • Anaconda的公司维护了conda的包来源仓库:Anaconda repo

参考链接

官方文档:https://docs.python.org/zh-cn/3/library/venv.html

知乎:https://zhuanlan.zhihu.com/p/379321816

csdn:https://blog.csdn.net/zhanghai4155/article/details/104215198

  • 标题: Python常见概念-0
  • 作者: 敖炜
  • 创建于 : 2023-09-21 10:49:27
  • 更新于 : 2024-04-19 09:32:16
  • 链接: https://ao-wei.github.io/2023/09/21/Python常见概念-0/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论