使用Anoconda创建虚拟环境和管理包
# 简介
conda 分为 anaconda 和 miniconda,anaconda 是一个包含了许多常用库的集合版本,miniconda 是精简版本(只包含conda、pip、zlib、python 以及它们所需的包)。
Anaconda是一个开源的Python发行版,集成了Python解释器、一些常用的科学计算库和工具。通过它可以很方便地安装python以及其它一些语言的库,更重要的是可以为项目创建虚拟环境,隔离多个项目的占用的系统资源和依赖。
# 使用虚拟环境的意义
在使用Python语言时,通过pip命令来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本,迫使我们需要根据实际需求不断进行更新或卸载相应的包,而如果我们直接使用本地的Python环境,会导致整体的开发环境相当混乱而不易管理,这时候我们就需要开辟一个独立干净的空间进行开发和部署,也就是需要用到虚拟环境。
所谓虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,减轻了包管理的负担
# 它与venv的对比?如何选择?
Venv是Python的内置模块,通过它也可以创建虚拟环境。Venv与Anaconda的区别主要在于:
包管理的方式不同:
venv创建的虚拟环境使用pip来安装和管理包。Conda创建的虚拟环境使用Conda自己的包管理系统来安装和管理包,它既可以使用conda install来安装包,也可以使用pip来安装包。
跨平台支持有差异:
通常,venv更适用于纯python项目,而conda是一个支持多种编程语言(如Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN)的跨平台的包管理系统,可以在Windows、Linux和macOS等操作系统上使用。
对python版本的依赖有差别:
conda相比virtualenv/venv最重要的一点,因为在用virtualenv/venv时环境中Python的版本受系统Python版本的限制,而在使用conda时,环境里Python的版本则不受系统Python版本的限制
总结:venv创建的虚拟环境通常更轻量级,Conda更适合于复杂的项目,特别是涉及到多种语言或非Python依赖项的项目。
# 安装
# windows版本安装
选择合适的版本
运行对应的exe程序,根据程序引导,一直next即可
手动配置Conda的环境变量
需要添加的环境变量如下所示(E:\Anaconda 为AnaConda安装时选择的目录,视情况修改):
E:\Anaconda
E:\Anaconda\Scripts
E:\Anaconda\Library\mingw-w64\bin
E:\Anaconda\Library\usr\bin
E:\Anaconda\Library\bin
2
3
4
5
# 使用
- 查看conda版本
conda --version
# 环境操作
- 为python项目创建conda环境
# env_name为自定义环境名称,而后是包信息
# 示例,创建一个python版本3.8、名为env_name的的虚拟环境
conda create -n env_name python=3.8
#如果不指定后面的python=3.8 则只是一个系统的基本模块
2
3
4
5
6
- 进入和退出环境
# 进入环境(首次安装完成需要重启终端使其生效)
conda activate env_name
# 退出环境
conda deactivate
2
3
4
5
- 当前存在的conda虚拟环境
conda env list
- 删除虚拟环境
#删除指定环境
conda env remove -n env_name
#删除所有环境
conda remove -n env_name --all
2
3
4
5
- 重命名环境
# 将 py3 重命名为 torch
conda create -n torch --clone py3
2
# 源操作
- 更新源,并在用户目录下生成
.condarc
文件
conda config --set show_channel_urls yes
- 查看当前下载源
conda config --show channels
- 添加镜像源
# url替换为源地址
conda config --add channels <url>
2
- 删除镜像源
#替换url
#删除单个源
conda config--remove channels <url>
#删除所有镜像源,恢复默认
conda config --remove-key channels
2
3
4
5
6
# 包/库操作
- 查找
#替换lib_name为目标库/包
conda search <lib_name>
2
3
- 安装
conda install <lib_name>
#示例
conda install torch=1.16
2
3
4
- 离线安装包
# path 替换为 `.tar.bz2`文件所在路径和文件名
conda install --use-local <path>
# 示例
conda install --use-local Z:\down_tmp\zip\win-64_pytorch-2.1.1-py3.8_cuda11.8_cudnn8_0.tar.bz2
2
3
4
5
- 查看已安装的库
# 查看 env_name下的库
conda list -n env_name
2
- 更新已安装的库
#单个更新
conda update <lib_name>
# 全部更新
conda update --all
2
3
4
5
- 删除包/库
conda remove --name env_name <lib_name>
# 常用源
- 清华源
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
2
3
4
- 中国科学技术大学
https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
2
- 上海交通大学源
https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge/
2
3
# 查看、编辑源文件
- 终端输入下面的命令,在当前目录下生成一个
.condarc
的文件
conda config --set show_channel_urls yes
- 编辑文件
# 源模版
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16