Linux安装Anaconda并离线创建环境

Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。

  • conda能支持Python、R、Java、JavaScript、C等语言包、依赖和环境管理工具。

  • conda能在Windows、MacOS、Linux上运行开源的软件包管理系统和环境管理系统。

  • conda能在本地轻松创建、保存、切换环境

 

一、下载安装包

官网链接:https://www.anaconda.com/products/distribution

 

二、安装

chmod +x Anaconda3-2022.05-Linux-x86_64.sh
./Anaconda3-2022.05-Linux-x86_64.sh

1、Enter 回车

 

2、Yes接受license条例

 

3、输入conda安装路径

 

4、初始化环境

1)方案一:输入yes,自动初始化环境变量

  • 自动初始化环境变量,会在用户的.bashrc文件中出现初始化相关的内容

 

2)方案二:跳过或输入no,不初始化

需要在用户的.bashrc中手动加入环境变量,默认会切换python的版本到conda中base环境的版本

export PATH=/data/anaconda3/bin:$PATH

执行source ~/.bashrc生效

 

5、测试安装

conda -V

 

三、conda基本使用

1、conda配置管理

  • .condarc保存了anaconda的配置信息,该文件存储在~/.condarc 路径中
  • 如果没有该文件,可以使用conda config来创建
  • 使用conda info 命令查看anaconda配置信息
  • 配置项:
    • channel:下载仓库
    • show_channel_urls:搜索是是否显示channel
    • envs_dirs:保存虚拟环境的路径
    • pkgs_dirs:保存依赖包的路径
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: true
envs_dirs:
  - /home/up/myconda/envs
pkgs_dirs:
  - /home/up/myconda/pkgs

 

2、包管理

# 列出当前环境下所有安装的 conda 包
$ conda list
 
# 列举一个指定环境下的所有包
$ conda list -n env_name
 
# 查询库
$ conda search scrapys
 
# 为当前环境安装库,安装库安装时可以指定版本例如:(scrapy=1.5.0)
$ conda install scrapy
 
# 为指定环境安装某个包
$ conda install --name target_env_name package_name
 
# 更新安装的库
$ conda update scrapy
 
# 更新指定环境某个包
$ conda update -n target_env_name package_name
 
# 更新所有包
$ conda update --all
 
# 删除已经安装的库也可用(conda uninstall)
$ conda remove scrapy
 
# 删除指定环境某个包
$ conda remove -n target_env_name package_name
 
# 删除没有用的包
$ conda clean -p

 

3、虚拟环境管理

# 查看现有的环境
$ conda info --env
$ conda env list

# 创建环境,后面的python=3.6是指定python的版本
$ conda create --name env_name python=3.6
 
# 创建包含某些包的环境(也可以加上版本信息)
$ conda create --name env_name python=3.7 numpy scrapy
 

# 激活conda
source activate

# 退出conda
source deactivate

# 激活某个环境
$ activate env_name

# 退出虚拟环境
$ conda deactivate 
 
# 关闭某个环境
$ conda deactivate
 
# 复制某个环境
$ conda create --name new_env_name --clone old_env_name
 
# 删除某个环境
$ conda remove --name env_name --all

# 删除指定环境下的某个包
$ conda remove --name env_name  package_name 
 
# 生成需要分享环境的yml文件(需要在虚拟环境中执行)
$ conda env export > environment.yml
 
# 别人在自己本地使用yml文件创建虚拟环境
$ conda env create -f environment.yml

 

四、离线创建虚拟环境

  • conda创建虚拟环境时,根据conda命令,到远程channel中取下载需要的包,所以存在一个联网的过程

  • 如果手动下载包,可能会出现依赖包下载不全的问题

设备条件:一台可联网设备,一台断网设备

要求:在断网设备上搭建pytorch环境

1、联网设备、断网设备配置conda

  • 联网设备配置envs_dirs,是为了方便后续能快速找出需要的pkgs
  • 离线设备配置,是为了方便
conda config     # 在 ~/ 目录下会出现 .condarc文件,用于配置个人的conda
# 联网设备 .condarc
show_channel_urls: true
envs_dirs:
  - /data/myconda/envs
pkgs_dirs:
  - /data/myconda/pkgs
# 断网设备
show_channel_urls: true
envs_dirs:
  - /home/up/myconda/envs
pkgs_dirs:
  - /home/up/myconda/pkgs

 

2、联网设备下载包

  • --download-only :表示只下载,不创建环境
conda create -n py38_pytorch pytorch python==3.8.5 --download-only

# pytorch 为一同需要下载的包,不在另外下载
# python==3.8.5 指定python版本
# --download-only   表示只下载,不创建环境

 

3、上传包到断网设备

1)打包联网设备的pkgs一定要保证包的完整,可能联网设备默认环境有有某个包,导致没有重复下载,需手动挑出来,此案例为/data/myconda/pkgs

2)通过scp等方法将打包的pkgs上传到断网设备

3)在断网设备上,将上传的pkgs中的文件复制到本地的pkgs,此案例为/home/up/myconda/pkgs

 

4、断网设备创建虚拟环境

conda create -n offlinepy38 pytorch python==3.8.5 --offline

 

5、激活并验证

  • 在断网设备上激活并切换到虚拟环境

    # 激活(是否需要看情况)
    source activate
    
    # 切换环境
    conda activate offlinepy38
    
  • 验证

    python3    # 查看版本
    
    >>> import torch  # 进入Python环境,导包检查是否成功