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)方案一:输入yes
,自动初始化环境变量
.bashrc
文件中出现初始化相关的内容
2)方案二:跳过或输入no
,不初始化
需要在用户的.bashrc
中手动加入环境变量,默认会切换python的版本到conda中base环境的版本
export PATH=/data/anaconda3/bin:$PATH
执行source ~/.bashrc
生效
conda -V
.condarc
保存了anaconda的配置信息,该文件存储在~/.condarc
路径中conda config
来创建conda info
命令查看anaconda配置信息channel
:下载仓库show_channel_urls
:搜索是是否显示channelenvs_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
# 列出当前环境下所有安装的 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
# 查看现有的环境 $ 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环境
envs_dirs
,是为了方便后续能快速找出需要的pkgsconda 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
--download-only
:表示只下载,不创建环境conda create -n py38_pytorch pytorch python==3.8.5 --download-only # pytorch 为一同需要下载的包,不在另外下载 # python==3.8.5 指定python版本 # --download-only 表示只下载,不创建环境
1)打包联网设备的pkgs
,一定要保证包的完整,可能联网设备默认环境有有某个包,导致没有重复下载,需手动挑出来,此案例为/data/myconda/pkgs
2)通过scp等方法将打包的pkgs上传到断网设备
3)在断网设备上,将上传的pkgs中的文件复制到本地的pkgs,此案例为/home/up/myconda/pkgs
conda create -n offlinepy38 pytorch python==3.8.5
在断网设备上激活并切换到虚拟环境
# 激活(是否需要看情况) source activate # 切换环境 conda activate offlinepy38
验证
python3 # 查看版本 >>> import torch # 进入Python环境,导包检查是否成功