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 (推荐)

  1. 下载 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 版本选择正确的下载链接。
  2. 运行安装脚本:

    下载完成后,使用 bash 命令运行安装脚本:

    bash
    bash Miniconda3-latest-Linux-x86_64.sh

    • 按照提示进行操作。您需要阅读并同意许可协议,选择安装位置(建议使用默认位置 ~/miniconda3),并决定是否将 Miniconda 的 bin 目录添加到您的 PATH 环境变量中。
  3. 激活 Conda:
    安装脚本会自动添加conda activate命令到你的 .bashrc 或 .bash_profile 文件。
    安装完成后,您需要重新加载 shell 配置文件(通常是 ~/.bashrc~/.bash_profile),或者关闭并重新打开终端,以使 Conda 生效:

    ```bash
    source ~/.bashrc

    或者, 如果您使用的是 zsh:

    source ~/.zshrc
    或者:bash
    exec $SHELL -l
    ```

  4. 验证安装:

    在终端中输入以下命令,如果看到 Conda 的版本号,则表示安装成功:

    bash
    conda --version

1.2 安装 Anaconda

  1. 下载 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

    下载最新版本

  2. 运行安装脚本:

    bash
    bash Anaconda3-2023.09-0-Linux-x86_64.sh

    • 按照提示进行操作,与 Miniconda 的安装过程类似。
  3. 激活 Conda:

    安装脚本会自动添加conda activate命令到你的 .bashrc 或 .bash_profile 文件。
    安装完成后,您需要重新加载 shell 配置文件(通常是 ~/.bashrc~/.bash_profile),或者关闭并重新打开终端,以使 Conda 生效:

    ```bash
    source ~/.bashrc

    或者, 如果您使用的是 zsh:

    source ~/.zshrc
    或者:bash
    exec $SHELL -l
    ```

  4. 验证安装:

    bash
    conda --version

2. Conda 基础命令

安装完成后,让我们来学习一些 Conda 的基础命令。

2.1 管理环境

Conda 的核心功能之一是环境管理。通过创建独立的虚拟环境,您可以为不同的项目隔离软件包及其依赖关系,避免版本冲突。

  • 创建新环境:

    bash
    conda create --name <environment_name> python=<python_version>

    • <environment_name>:您为新环境指定的名称(例如,my_envpy38 等)。
    • python=<python_version>:可选参数,指定环境中使用的 Python 版本(例如,python=3.8python=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>:您要安装的软件包的名称(例如,numpypandasrequests 等)。

    例如,安装 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_prioritystrict 可以确保 Conda 优先从优先级最高的 Channels 安装软件包。

3.2 使用 Jupyter Notebook

Jupyter Notebook 是一个基于 Web 的交互式计算环境,广泛用于数据科学、机器学习和科学计算。Conda 可以轻松管理 Jupyter Notebook 及其相关的软件包。

  1. 安装 Jupyter Notebook:

    在 Conda 环境中,使用以下命令安装 Jupyter Notebook:

    bash
    conda install jupyter

  2. 启动 Jupyter Notebook:

    bash
    jupyter notebook

    这将在您的默认浏览器中打开 Jupyter Notebook 界面。

  3. 在 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 ~/.bashrcsource ~/.zshrc),或者关闭并重新打开终端。
  • 软件包安装失败:

    • 检查您的网络连接是否正常。
    • 尝试更新 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
    • 然后再尝试安装或创建环境。如果问题仍然存在,可以尝试手动解决依赖冲突,或者尝试创建一个新的环境。

5. 总结

本教程详细介绍了在 Ubuntu 系统上安装和使用 Conda 的各个方面,包括安装 Miniconda 和 Anaconda、管理 Conda 环境、管理软件包、使用 pip、使用 Conda Channels 以及使用 Jupyter Notebook。通过学习本教程,您应该能够熟练地使用 Conda 来管理您的 Python 项目及其依赖关系,创建隔离的开发环境,并轻松地在不同环境之间切换。

Conda 是一个功能强大且灵活的工具,可以极大地提高您的开发效率和项目的可维护性。希望本教程对您有所帮助,祝您在数据科学和科学计算的道路上一切顺利!

THE END