Conda学习记录

为了炼丹。


#

 Conda 是开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系(或者说配置隔离Python环境),并在它们之间轻松切换。

此外, miniconda  anaconda 也被广泛使用。前者体积较小,仅包含CondaPython及少量依赖; 后者体积较大,除了CondaPython之外还包括超多用于科学计算的软件包及其依赖。



# 安装

1.首先于官网下载对应系统的 Conda 安装包

 Ubuntu 下,进入 Anaconda 官网下载安装包。下载后得到一个.sh可执行文件。

[OPTIONAL]若为Windows用户,则在官网下载对应系统的可执行文件.exe后进行安装,安装完成后若想使用 CMD 操作 Conda ,那么需要将以下路径配置到环境变量:

X\anaconda
X\anaconda\Library\bin
X\anaconda\Scripts

2.执行该文件进行安装

bash ./Anaconda3-2023.07-1-Linux-x86_64.sh

中途需要用户在协议页面输入 yes 同意协议才能安装,协议较长,按f翻页。最后输入 yes 以同意Conda初始化。

3.重启终端,输入conda命令查看是否正确安装

usage: conda [-h] [-V] command ...

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
  command
    clean             Remove unused packages and caches.
    compare           Compare packages between conda environments.
    config            Modify configuration values in .condarc. This is modeled
                      after the git config command. Writes to the user
                      .condarc file (/root/.condarc) by default. Use the
                      --show-sources flag to display all identified
                      configuration locations on your computer.
    create            Create a new conda environment from a list of specified
                      packages.
    info              Display information about current conda install.
    init              Initialize conda for shell interaction.
    install           Installs a list of packages into a specified conda
                      environment.
    list              List installed packages in a conda environment.
    package           Low-level conda package utility. (EXPERIMENTAL)
    remove (uninstall)
                      Remove a list of packages from a specified conda
                      environment. Use `--all` flag to remove all packages and
                      the environment itself.
    rename            Renames an existing environment.
    run               Run an executable in a conda environment.
    search            Search for packages and display associated
                      information.The input is a MatchSpec, a query language
                      for conda packages. See examples below.
    update (upgrade)  Updates conda packages to the latest compatible version.
    notices           Retrieves latest channel notifications.

options:
  -h, --help          Show this help message and exit.
  -V, --version       Show the conda version number and exit.

conda commands available from other packages:
 doctor - A subcommand that displays environment health report

conda commands available from other packages (legacy):
  build
  content-trust
  convert
  debug
  develop
  env
  index
  inspect
  metapackage
  pack
  render
  repo
  server
  skeleton
  token
  verify

# 使用

设置 Channels 

该步骤设置 Conda 从何处下载软件包,默认为defaults(该通道表现一般: 软件包不全及更新不及时)。因此需要重新设置通道。

首先使用 conda config 命令创建.condarc文件(这是conda配置文件)。

然后通过以下命令进行通道查看和配置:

# 查看目前的Channels及其优先级
conda config --get channels
# 新增bioconda通道
conda config --add channels bioconda
# 新增conda-forge通道
conda config --add channels conda-forge
# 设置显示通道地址
conda config --set show_channel_urls yes

注: 设置完新的通道后,需要在.condarc文件中把defaults删除。此外,可以根据服务器所在地设置对应的源,如清华源等。

使用 conda info 查看基本信息。

虚拟环境

最好不要再 base 环境安装任何包,这里的包能在小环境被调用。使用以下命令创建、查看、删除独立环境:

# 创建虚拟环境
conda create -n 环境名
# 启动该虚拟环境
conda activate 环境名
# 退出该环境
conda deactivate
# 列出已存在的环境
conda env list
# 删除已创建的环境
conda remove -n 环境名 --all
# 克隆环境
conda create -n 环境名 --clone 被克隆环境名

安装软件包

使用下述方法查看哪些软件可以用 Conda 安装:

# 方法1: 网站查询
https://anaconda.org/search
https://bioconda.github.io/
# 方法2: conda search xxx
conda search numpy

使用 conda install 进行软件包安装:

# 查看有哪些版本可以安装
conda search fastqc
# 安装指定版本,如果不指定则安装最新版
conda install fastqc=0.11.7
# 安装多个软件,用空格分开
conda install fastqc numpy pandas python=2.7
# 从某通道安装软件
conda install -c conda-forge mamba

使用 conda list 查看装了哪些软件包:

# 列出所有软件包
conda list
# 查看正则表达式匹配的软件
conda list num*
# 查看指定环境的软件
conda list -n 环境名

使用 conda remove 移除软件:

# 移除软件
conda remove 软件名
# 移除指定环境的软件
conda remove -n 环境名 软件名

使用 conda update 进行软件包和自身的升级:

# 升级软件
conda update 软件名
# 升级conda本身
conda update conda
# 升级所有软件
conda update -y --all
# 降级软件仅需安装软件包的旧版
conda install python=2.7

对于禁止联网的平台,可以先下载软件包至本地,然后从本地上传至平台 Anaconda 根目录的pkgs文件夹下,再安装。这些软件包可以在镜像里下载。

conda --use-local xxx.tar.bz2

使用 -p 将软件安装到指定位置:

conda install -p ~/dir/you/want # 然后通过位置启动小环境

版本控制和迁移

若期刊要求提供软件版本,则使用 conda list 命令:

# 查看当前环境的软件
conda list
# 导出当前环境的软件列表,后缀.txt仅为了方便跨平台打开,不加后缀也可以
conda list -n 环境名 --export > ~/Desktop/conda_list.txt
# 安装导出的信息到新的环境
conda create -n 环境名 -file ~/Desktop/conda_list-.txt

使用 conda env export 能导出环境:

# 导出环境
conda env export -n 环境名 > ~/Desktop/env_export_file.yml
# 根据导出的yml文件创建环境,该命令会创建一个和导出时一模一样的环境(包括名字)
conda env create -f ~/Desktop/env_export_file.yml
# 根据导出的yml更新环境
conda env update -f ~/Desktop/env_export_file.yml

clean

使用该命令进行清除操作:

# -i, --index-cache Remove index cache 换源时一定要执行
conda clean -i
# -p, --packages Remove unused packages from writable package caches
conda clean -p
# -t, --tarballs Remove cached package tarballs
# -a, --all Remove index cache, lock files, unused cache packages, and tarballs
conda clean -a

替换不同版本的\(\text{Python}\)

首先卸载先前安装的版本,再安装目标版本的\(\text{Python}\):

conda uninstall python
conda install python=3.10.6

# 结合Pycharm使用

当结合 Pycharm 使用时,应先使用Anaconda Prompt创建虚拟环境,然后在 Pycharm 新建项目中选择Previously configured interpreter -> Conda Environment。Conda Excutable选择如下:

# Linux下Miniconda3
/miniconda3/bin/conda
# Windows下Miniconda3
/miniconda3/Scripts/conda.exe
# Linux下Anaconda3
/anaconda3/bin/conda

选好路径后,然后点击Load Environments。窗体内路径选择下方会出现新的内容,选中Use existing environment,然后选择创建好的环境。

# 使用PROXY

不同于\(\textbf{pip}\)能在每一条命令行通过参数的形式设置\(\text{PROXY}\) (Python学习记录, 2023),\(\textbf{conda}\)允许在对应\(\text{env}\)中生成\(\text{.condarc}\)文件,进而在该文件内设置\(\text{PROXY}\)参数。具体步骤如下:

进入对应\(\text{env}\)并生成\(\text{.condarc}\)文件

conda activate enva
conda config --env

使用\(\text{VSCode}\)打开文件并填入\(\text{PROXY}\)参数

proxy_servers:
    http: http://user:[email protected]:8080
    https: http://user:[email protected]:8080
ssl_verify: False

注意:删除文件自动生成的 {} 

查看\(\text{PROXY}\)是否正常运行

conda info --all

# mamba

使用 mamba 能对Conda进行加速,具体而言,它能使 conda install 进行并行下载,

若想使用mamba,需要现在base环境安装它:

conda activate base
conda install mamba

除了启动环境 conda activate 外,其他所有命令都可以使用mamba替换,使其效率更高:

# 搜索软件
conda search numpy
mamba search numpy
mamba repoquery search numpy
# 安装软件
mamba install numpy

此外,mamba可以查看安装的软件之间的依赖关系:

# 查看numpy依赖哪些软件
mamba repoquery depends -t numpy
# 查看谁依赖numpy
mamba repoquery whoneeds -t python
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments