一、Conda 简介
Conda 是一个开源的包、依赖项和环境管理系统,可在 Windows、macOS 和 Linux 上运行。它最初是为 Python 程序创建的,但可以打包和分发任何语言的软件。Conda 有 Anaconda 和 Miniconda 两种发行版,Anaconda 包含大量常用的数据科学包,Miniconda 则仅包含 Conda 及其依赖项。
二、安装 Conda
- 下载安装包:访问 Anaconda 官方下载页面 或 Miniconda 官方下载页面,选择适合操作系统的版本进行下载。
- 运行安装程序:下载完成后,运行安装程序,按照提示完成安装。在 Windows 安装过程中,注意勾选“Add Anaconda to my PATH environment variable”,以便在命令行中直接使用 Conda 命令。
三、基本概念
- 环境(Environment):独立的 Python 环境,包含特定版本的 Python 以及一系列安装的包,可避免不同项目间的依赖冲突。
- 包(Package):包含 Python 模块、二进制可执行文件和其他资源的文件集合,Conda 可管理其安装、更新和卸载。
四、常用操作
(一)环境管理
- 创建新环境
- 基本命令:
conda create --name <环境名称> [Python 版本] [要安装的包]
- 示例:
conda create --name myenv
:创建名为myenv
的环境,默认安装当前 Conda 版本对应的 Python 版本。conda create --name myenv python=3.9
:创建名为myenv
的环境,指定 Python 版本为 3.9。conda create --name myenv python=3.9 numpy pandas
:创建名为myenv
的环境,指定 Python 版本为 3.9,并同时安装numpy
和pandas
包。- 指定环境位置创建:
conda create --prefix /path/to/your/environment python=3.9 numpy
- 基本命令:
- 激活环境
- 查看所有环境:
conda info --envs
或conda env list
- 删除环境
- 在多个环境间切换
(二)包管理
(三)导出和导入环境
- 导出环境:
conda env export > environment.yml
,将当前激活环境的信息导出到environment.yml
文件。 - 导入环境:
conda env create -f environment.yml
,根据environment.yml
文件创建新环境。
五、加速 Conda 使用
- 更换 Conda 镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
- **阿里云镜像源**
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/
conda config --set show_channel_urls yes
- **查看和删除镜像源**- 查看:`conda config --show channels`- 删除:`conda config --remove channels <镜像源地址>`
- 使用代理
- HTTP/HTTPS 代理:
conda config --set proxy_servers.http http://proxy.example.com:8080
conda config --set proxy_servers.https https://proxy.example.com:8080
- **SOCKS 代理**:
conda config --set proxy_servers.http socks5://proxy.example.com:1080
conda config --set proxy_servers.https socks5://proxy.example.com:1080
- 使用 mamba 替代 Conda
六、Conda 与 pip 的关联
(一)pip 导出依赖
使用 pip freeze > requirements.txt
导出当前 Python 环境中所有包及其版本信息到 requirements.txt
文件。可结合 grep
筛选指定包信息,如 pip freeze | grep numpy > requirements.txt
。
(二)pip 导入依赖
在新环境中使用 pip install -r requirements.txt
安装 requirements.txt
文件中指定的包。可使用 -i
参数指定镜像源加速下载,如 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
。
七、Conda 的优势与劣势
(一)优势
- 环境管理功能强大:具备隔离性,可创建多个独立环境,避免项目依赖冲突;支持环境配置信息导出和导入,保证项目可重复性。
- 跨平台兼容性:可在 Windows、macOS 和 Linux 等多种操作系统上使用,提供一致的命令行接口。
- 丰富的包管理:包种类多,涵盖数据科学、机器学习等领域常用包;能智能处理包之间的依赖关系。
- 易于使用:命令简单直观,易于上手。
(二)劣势
- 占用磁盘空间大:每个 Conda 环境包含完整的 Python 解释器和安装的包,多个环境会占用大量磁盘空间。
- 依赖解析速度慢:安装或更新包时,依赖解析过程可能耗时较长。
- 镜像源问题:镜像源可能存在同步不及时或不稳定的情况,频繁更换可能导致配置问题。
- 学习曲线相对较陡:初学者掌握高级功能(如自定义镜像源配置、环境克隆和迁移等)和处理复杂依赖冲突需要花费一定时间。