文章目录
一. python包管理概述
1. miniforge、Miniconda与Anaconda
Anaconda vs Miniconda
- Anaconda 和 Miniconda 是一个公司的产品,商用是付费的,个人暂时免费;
- Anaconda = Miniconda + more packages。
Miniconda = Python + conda,安装最小的支持包,如openssl, ncurses…
Anaconda = Python + conda + meta package 安装至少不低于400个常见的支持包,如curl, numpy, pandas…
Miniconda vs Miniforge
-
miniforge是由社区主导,用GitHub托管,完全免费,使用 (而且只用)conda-forge 作为(默认)下载channel,避开了Anaconda的repository,从而也就避开了商业使用被Anaconda追责的问题。
-
Miniforge是由社区主导,用GitHub托管,完全免费。
channel的定义
conda channels (源) 是 packages 存储的位置,也即是你是从哪个来源下载这个包,对应到conda内部处理则是下载文件的链接。因为不同源会有相同名字的包,因此必须指定来源,同时安装conda的时候也会有一个默认的channel。目前主流的就是 conda-forge,齐全且更新快。如果有多个channel,他们会按顺序确定优先级,优先的源上找不到,就会到下一个优先级的源上去找。
还可以设置channel的优先级是否strict,如果是strict的话,则只会在这一个源上查找。
- Miniforge 使用conda-forge 作为默认 channel
- Miniconda 使用anaconda.org 作为默认channel。
MacOS上的支持
-
Miniforge 比 Anaconda、Miniconda 更早支持了Apple M1芯片。在苹果官方的Tensorflow加速训练教程中也是推荐的Miniforge。
-
Miniforge相比Anaconda更为灵活轻便,安装体积小、运行速度快、支持mamba、支持PyPy等。
2. conda与pip的区别是什么?
Conda 和 pip 都是 Python 的包管理工具,但它们有一些区别,主要体现在以下几个方面:
- 包管理范围:
- pip:是 Python 的默认包管理器,主要用于安装和管理 Python 包(也称为模块或库),这些包通常发布在 Python Package Index(PyPI)上。
- Conda:是一个跨平台的包管理器和环境管理器,不仅可以管理 Python 包,还可以管理任何语言的软件包。
- 环境管理:
- pip:虽然可以安装和管理 Python 包,但本身并没有直接提供环境管理的功能。通常需要结合 virtualenv 或者 venv 等工具来创建和管理虚拟环境。
- Conda:除了包管理外,还具有强大的
环境管理功能
。Conda 可以创建、导出、复制和删除环境,允许用户在不同的项目中使用不同版本的软件包及其依赖项。
总结
- conda的优势:包之间严格的依赖检查;是一个超越Python的环境管理器,可以创建多个环境,环境之间互相隔离;
- pip的优势:绝大多数包
优先发布到pip上
,安装方便,群众基础好。
如果需要多个python环境,最好使用conda,因为它可以做创建多个py虚拟环境,互不影响(不同的项目依赖的python 包版本不一致)。
3. pip与conda配合使用
pip不像conda一样,它不知道环境,我们首先要确保我们用的是本环