linux下安装并使用miniconda3

之前的python开发项目中,一直是使用python自带的pip venv管理虚拟环境,它只能基于当前服务器已存在的python的版本来创建虚拟环境,比如你的服务器上安装的python版本是3.8,那么创建的虚拟环境都是基于这个版本,如果想要一个基于python 3.10的虚拟环境,则需要先在服务器上安装这个版本才行。

conda可以指定python版本来创建虚拟环境。

Anaconda

安装miniconda3:

以下步骤创建安装目录(这里的安装目录是/data/miniconda3),下载并运行安装脚本,删除安装脚本,运行以一下初始化程序。

mkdir -p /data/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /data/miniconda3/miniconda.sh
bash /data/miniconda3/miniconda.sh -b -u -p /data/miniconda3
rm -rf /data/miniconda3/miniconda.sh
/data/miniconda3/bin/conda init bash

完成后重启当前shell,运行conda info,可以看到类似的信息:

(base) root@8500t:~/.conda$ conda info

     active environment : base
    active env location : /data/miniconda3
            shell level : 1
       user config file : /home/root/.condarc
 populated config files : 
          conda version : 24.1.2
    conda-build version : not installed
         python version : 3.12.1.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.1.2=0
                          __glibc=2.35=0
                          __linux=5.15.0=0
                          __unix=0=0
       base environment : /data/miniconda3  (writable)
      conda av data dir : /data/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /data/miniconda3/pkgs
                          /home/root/.conda/pkgs
       envs directories : /data/miniconda3/envs
                          /home/root/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.12.1 Linux/5.15.0-101-generic ubuntu/22.04.3 glibc/2.35 solver/libmamba conda-libmamba-solver/23.12.0 libmambapy/1.5.3
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

从这里可以看到,当前安装conda带的python版本python version : 3.12.1.final.0,用户配置文件在/home/root/.condarc,这个文件来设置镜像源。

设置镜像源

设置为清华源,参考:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

将以下信息复制到配置文件/home/root/.condarc中:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。

操作虚拟环境

这里我们指定python版本为3.8来创建一个虚拟环境test1

# 创建环境
conda create -n test1 python=3.8

等待安装完成后,即可激活环境来验证是否安装成功。

# 激活环境并查看python版本
conda activate test1
python -V
# 输出:Python 3.8.19

可以看到,python 3.8.19已经安装好了,相比较pip需要提前安装不同的python版本,conda方便很多。

其他一些与环境相关的命令:

# 查看已创建的环境
conda env list
# 删除环境
conda env remove -n ENVNAME

包管理

# 查看已安装的包
conda list
# 查看是否已安装指定包
conda list PACKAGE_NAME
# 搜索可用的包
conda search PACKAGE_NAME
# 安装包
conda install PACKAGE_NAME
# 指定版本安装包
conda install PACKAGE_NAME=VERSION
# 更新包
conda update PACKAGE_NAME
# 更新所有包
conda update --all
# 删除包
conda remove PACKAGE_NAME

导出虚拟环境

# 导出当前虚拟环境
conda env export > environment.yml
# 在base环境中导出虚拟环境 ENVNAME
conda env export -n ENVNAME > environment.yml

这样导出的文件示例:

name: test1
channels:
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - brotli-python=1.0.9=py38h6a678d5_7
  - ca-certificates=2024.3.11=h06a4308_0
  - certifi=2024.2.2=py38h06a4308_0
  - cffi=1.16.0=py38h5eee18b_0
  - charset-normalizer=2.0.4=pyhd3eb1b0_0
  - cryptography=42.0.5=py38hdda0065_0
  - idna=3.4=py38h06a4308_0
  - ld_impl_linux-64=2.38=h1181459_1
  - libffi=3.4.4=h6a678d5_0
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.13=h7f8727e_0
  - pip=23.3.1=py38h06a4308_0
  - pycparser=2.21=pyhd3eb1b0_0
  - pyopenssl=24.0.0=py38h06a4308_0
  - pysocks=1.7.1=py38h06a4308_0
  - python=3.8.19=h955ad1f_0
  - readline=8.2=h5eee18b_0
  - requests=2.28.1=py38h06a4308_1
  - setuptools=68.2.2=py38h06a4308_0
  - sqlite=3.41.2=h5eee18b_0
  - tk=8.6.12=h1ccaba5_0
  - urllib3=1.26.18=py38h06a4308_0
  - wheel=0.41.2=py38h06a4308_0
  - xz=5.4.6=h5eee18b_0
  - zlib=1.2.13=h5eee18b_0
prefix: /data/miniconda3/envs/test1

这样导出的environment.yml中包含了所有的依赖包,一个大型项目将会导出非常多包,而且当项目需要跨平台运行时,有的依赖包并不能适配所有平台导致运行失败,这时候可以选择导出精简版:

conda env export --from-history > environment.yml

使用--from-history导出的文件示例:

name: test1
channels:
  - defaults
dependencies:
  - python=3.8
  - requests=2.28.1
prefix: /data/miniconda3/envs/test1

导出的包是否有版本号取决于安装时是否指定版本号。

导入虚拟环境

上面导出的虚拟环境加入版本库或者到别的服务器上,导入即可。

conda env create -n ENVNAME --file environment.yml

由于在environment.yml文件的第一行有指定环境名称,在不使用-n指定环境名称时,将会沿用文件中的名称。

linux下安装并使用miniconda3

原文链接:https://beltxman.com/4079.html,若无特殊说明本站内容为 行星带 原创,未经同意禁止转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top