Ubuntu Conda 入门教程:从安装到使用
Ubuntu Conda 入门教程:从安装到使用
Conda 是一个开源的包管理系统和环境管理系统,主要用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。它最初是为 Python 程序创建的,但现在可以打包和分发各种语言的软件(如 R、Scala、Java、JavaScript、C/C++、FORTRAN 等)。Conda 尤其在数据科学、机器学习和科学计算领域广受欢迎,因为它能够轻松管理复杂的项目依赖和创建隔离的开发环境。
本教程将详细指导您在 Ubuntu 系统上安装和使用 Conda,涵盖从下载安装包到创建和管理虚拟环境,再到安装和使用软件包的整个过程。无论您是 Conda 新手还是希望更深入地了解其功能,本教程都将为您提供全面的指导。
1. 安装 Conda
在 Ubuntu 上安装 Conda 有两种主要方式:
- Miniconda: 这是 Conda 的精简版,仅包含 Conda 及其依赖项。如果您希望自行选择需要安装的软件包,并且希望节省磁盘空间,建议使用 Miniconda。
- Anaconda: 这是 Conda 的完整发行版,包含了 Conda、Python 以及 250 多个常用的科学计算和数据科学软件包。如果您是初学者,或者希望快速搭建一个包含所有常用工具的数据科学环境,建议使用 Anaconda。
本教程将分别介绍这两种方式的安装过程。
1.1 安装 Miniconda (推荐)
-
下载 Miniconda 安装脚本:
打开终端,使用
wget
命令下载适用于 Linux 的 Miniconda 安装脚本。请访问 Miniconda 官方网站 (https://docs.conda.io/en/latest/miniconda.html) 获取最新版本的下载链接。通常,您会选择 Miniconda3,对应 Python 3.x 版本。例如:bash
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh- 注意:请根据您的系统架构(64 位或 32 位)和所需的 Python 版本选择正确的下载链接。
-
运行安装脚本:
下载完成后,使用
bash
命令运行安装脚本:bash
bash Miniconda3-latest-Linux-x86_64.sh- 按照提示进行操作。您需要阅读并同意许可协议,选择安装位置(建议使用默认位置
~/miniconda3
),并决定是否将 Miniconda 的bin
目录添加到您的PATH
环境变量中。
- 按照提示进行操作。您需要阅读并同意许可协议,选择安装位置(建议使用默认位置
-
激活 Conda:
安装脚本会自动添加conda activate命令到你的 .bashrc 或 .bash_profile 文件。
安装完成后,您需要重新加载 shell 配置文件(通常是~/.bashrc
或~/.bash_profile
),或者关闭并重新打开终端,以使 Conda 生效:```bash
source ~/.bashrc或者, 如果您使用的是 zsh:
source ~/.zshrc
或者:
bash
exec $SHELL -l
``` -
验证安装:
在终端中输入以下命令,如果看到 Conda 的版本号,则表示安装成功:
bash
conda --version
1.2 安装 Anaconda
-
下载 Anaconda 安装脚本:
与 Miniconda 类似,使用
wget
命令下载 Anaconda 安装脚本。访问 Anaconda 官方网站 (https://www.anaconda.com/products/distribution) 获取最新版本的下载链接。例如:bash
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
下载最新版本 -
运行安装脚本:
bash
bash Anaconda3-2023.09-0-Linux-x86_64.sh- 按照提示进行操作,与 Miniconda 的安装过程类似。
-
激活 Conda:
安装脚本会自动添加conda activate命令到你的 .bashrc 或 .bash_profile 文件。
安装完成后,您需要重新加载 shell 配置文件(通常是~/.bashrc
或~/.bash_profile
),或者关闭并重新打开终端,以使 Conda 生效:```bash
source ~/.bashrc或者, 如果您使用的是 zsh:
source ~/.zshrc
或者:
bash
exec $SHELL -l
``` -
验证安装:
bash
conda --version
2. Conda 基础命令
安装完成后,让我们来学习一些 Conda 的基础命令。
2.1 管理环境
Conda 的核心功能之一是环境管理。通过创建独立的虚拟环境,您可以为不同的项目隔离软件包及其依赖关系,避免版本冲突。
-
创建新环境:
bash
conda create --name <environment_name> python=<python_version><environment_name>
:您为新环境指定的名称(例如,my_env
、py38
等)。python=<python_version>
:可选参数,指定环境中使用的 Python 版本(例如,python=3.8
、python=3.9
等)。如果不指定,将使用 Conda 默认的 Python 版本。
例如,创建一个名为
my_env
并使用 Python 3.8 的环境:bash
conda create --name my_env python=3.8 -
激活环境:
bash
conda activate <environment_name>例如,激活名为
my_env
的环境:bash
conda activate my_env激活环境后,您的终端提示符前会显示环境名称,表示您已进入该环境。
-
退出环境:
bash
conda deactivate -
列出所有环境:
bash
conda env list或
bash
conda info --envs -
删除环境:
bash
conda env remove --name <environment_name>例如,删除名为
my_env
的环境:bash
conda env remove --name my_env -
克隆环境:
bash
conda create --name <new_environment_name> --clone <existing_environment_name>
这将创建一个与现有环境完全相同的新环境。 -
导出环境:
如果您想与他人共享您的环境,或者在另一台机器上重新创建相同的环境,可以使用conda env export
命令:bash
conda env export > environment.yml这将在当前目录下创建一个名为
environment.yml
的文件,其中包含了当前环境中所有软件包及其版本信息。 -
从 YAML 文件创建环境:
bash
conda env create -f environment.yml
这将根据environment.yml
文件中的描述创建一个新环境。
2.2 管理软件包
在激活的环境中,您可以使用以下命令管理软件包:
-
安装软件包:
bash
conda install <package_name><package_name>
:您要安装的软件包的名称(例如,numpy
、pandas
、requests
等)。
例如,安装 NumPy:
bash
conda install numpy您可以同时安装多个软件包:
bash
conda install numpy pandas matplotlib您还可以指定软件包的版本:
bash
conda install numpy=1.23.0
如果不指定版本号,conda将自动安装可用的最新版本。 -
指定channel安装包
有些包可能不在默认的conda channel中,你可以通过-c
参数指定channel:
bash
conda install -c conda-forge <package_name>
例如, 安装biopython
包:
conda install -c conda-forge biopython
-
列出已安装的软件包:
bash
conda list -
搜索软件包:
bash
conda search <package_name> -
更新软件包:
bash
conda update <package_name>
更新单个包。bash
conda update --all
更新当前环境中的所有包。 -
卸载软件包:
bash
conda remove <package_name>
2.3 使用 pip
虽然 Conda 主要用于管理 Conda 软件包,但它也可以与 pip 协同工作。在 Conda 环境中,您可以使用 pip install
命令安装无法通过 Conda 获取的软件包。
-
在 Conda 环境中使用 pip:
bash
pip install <package_name>- 注意:尽量先使用
conda install
安装软件包,只有在 Conda 无法找到所需软件包时才使用pip install
。
- 注意:尽量先使用
3. 高级用法
3.1 Conda Channels
Conda Channels 是软件包的存储库。默认情况下,Conda 使用 Anaconda, Inc. 提供的默认 Channels。但是,您也可以添加其他 Channels,例如:
- conda-forge: 一个社区维护的 Channels,提供了大量额外的软件包。
-
bioconda: 一个专门用于生物信息学软件的 Channels。
-
添加 Channels:
bash
conda config --add channels <channel_name>例如,添加 conda-forge Channels:
bash
conda config --add channels conda-forge
这将把conda-forge
添加到您的 channel 列表中,并使其具有较高的优先级。 -
查看当前配置的 Channels:
bash
conda config --show channels -
指定优先级
bash
conda config --set channel_priority strict
设置channel_priority
为strict
可以确保 Conda 优先从优先级最高的 Channels 安装软件包。
3.2 使用 Jupyter Notebook
Jupyter Notebook 是一个基于 Web 的交互式计算环境,广泛用于数据科学、机器学习和科学计算。Conda 可以轻松管理 Jupyter Notebook 及其相关的软件包。
-
安装 Jupyter Notebook:
在 Conda 环境中,使用以下命令安装 Jupyter Notebook:
bash
conda install jupyter -
启动 Jupyter Notebook:
bash
jupyter notebook这将在您的默认浏览器中打开 Jupyter Notebook 界面。
-
在 Jupyter Notebook 中使用 Conda 环境:
默认情况下,Jupyter Notebook 会使用启动它的 Conda 环境。但是,您也可以在 Jupyter Notebook 中切换到其他 Conda 环境。为此,您需要安装nb_conda_kernels
软件包:bash
conda install nb_conda_kernels安装完成后,重新启动 Jupyter Notebook。在创建新的 Notebook 时,您将能够选择要使用的 Conda 环境。
3.3 使用requirements.txt
如果你有一个项目使用了pip的requirements.txt
文件,你可以在conda环境中使用它来安装依赖:
1. 激活conda环境
bash
conda activate <your_env_name>
2. 使用pip安装依赖
bash
pip install -r requirements.txt
4. 常见问题及解决方法
-
conda
命令找不到:- 确保您已正确安装 Conda,并且已将 Conda 的
bin
目录添加到您的PATH
环境变量中。 - 重新加载 shell 配置文件(
source ~/.bashrc
或source ~/.zshrc
),或者关闭并重新打开终端。
- 确保您已正确安装 Conda,并且已将 Conda 的
-
软件包安装失败:
- 检查您的网络连接是否正常。
- 尝试更新 Conda:
conda update conda
。 - 尝试清除 Conda 缓存:
conda clean --all
。 - 如果问题仍然存在,请尝试使用
-v
或--verbose
选项运行 Conda 命令以获取更详细的错误信息,并根据错误信息进行排查。
-
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
- 出现这个问题通常是因为conda在解析环境依赖时遇到冲突。可以先尝试更新conda:
bash
conda update conda - 然后再尝试安装或创建环境。如果问题仍然存在,可以尝试手动解决依赖冲突,或者尝试创建一个新的环境。
- 出现这个问题通常是因为conda在解析环境依赖时遇到冲突。可以先尝试更新conda:
5. 总结
本教程详细介绍了在 Ubuntu 系统上安装和使用 Conda 的各个方面,包括安装 Miniconda 和 Anaconda、管理 Conda 环境、管理软件包、使用 pip、使用 Conda Channels 以及使用 Jupyter Notebook。通过学习本教程,您应该能够熟练地使用 Conda 来管理您的 Python 项目及其依赖关系,创建隔离的开发环境,并轻松地在不同环境之间切换。
Conda 是一个功能强大且灵活的工具,可以极大地提高您的开发效率和项目的可维护性。希望本教程对您有所帮助,祝您在数据科学和科学计算的道路上一切顺利!