一、Anaconda介绍及安装配置
1、Anaconda简介
Anaconda是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含conda、Python等190多个科学包及其依赖项。它便于获取和管理包,包括python和许多常用软件库(如numpy、pandas等)以及包管理器conda。它使安装比常规python安装容易,并对环境进行统一管理。
conda是一个开源的包和环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能在不同环境之间切换。
特点:开源、安装简单、高性能使用Python和R语言、免费社区支持
Miniconda 是一个 Anaconda 的轻量级替代,默认只包含了 python 和 conda,但是可以通过 pip 和 conda 来安装所需要的包。
2、Anaconda产生背景
Anaconda诞生的目的是为了解决python环境中的问题。在python中,我们需要一个解释器和包集合。解释器根据python版本分为2和3,且2和3之间不兼容。包集合包含自带和第三方包,通常通过pip或easy_install下载。如果一个环境中缺少某个包,则引用该包的程序无法在该环境中运行。
Anaconda解决了以下问题:
-
Python2与Python3的选择
python2和python3在语法上是不兼容的,切换环境变量麻烦。
虽然目前Python3使用的范围更广,但是Python3小版本之前也存在一些差异。
-
包管理
本地只有一个python环境,所有程序用到的各种包都只能放到同一个环境中,导致环境混乱。部署到其他电脑又要手动一个一个下载相关包麻烦。
如果能为每个程序开发都选用不同的环境,开发好后将该程序需要的环境(第三方包)都独立打包出来就好了。
-
与virtualenv的对比
Anaconda 是一个包含190+的科学包及其依赖项的发行版本。可以创建一个独立的Python环境,其包含的科学包包括:conda, numpy, scipy, ipython notebook等
virtualenv 用于创建一个独立的Python环境的工具,新环境中需要手动安装需要的第三方包
为什么要安装Anaconda?
Anaconda是一个包含190+科学包及其依赖项的发行版,可创建一个独立的Python环境,包含conda、numpy、scipy、ipython notebook等。virtualenv用于创建独立的Python环境,但需要手动安装第三方包。
Anaconda对于python初学者非常友好,相比单独安装python主程序,选择Anaconda可以省去很多麻烦。Anaconda添加了许多常用的功能包,并附带捆绑了两个非常好用的交互式代码编辑器(Spyder、Jupyter notebook)。
3、conda介绍
conda是一个包管理器和环境管理器。我们可以在命令行(Anaconda prompt或终端)中使用它。conda是一个python项目,但它支持多种语言,如Python、R、Ruby、Lua、Scala、Java、JavaScript、C/C++、FORTRAN。
为什么要使用conda?
conda的作用是解决包管理和环境管理的问题。它可以创建虚拟环境,与主环境分开,方便地在不同环境之间进行切换。conda结合了pip和virtualenv的功能。
假如当你去做项目时,别人给你的程序用的库是低版本的,而你自己通过pip安装的是高版本的库,由于存在兼容问题,你的库不能运行该程序,而你也不可能为了这个而删去你的高版本的库去下载这个符合环境的低版本库吧,所以这极其繁琐和不方便。
Anaconda能够创建一个虚拟环境,这个虚拟环境和你的主环境是分开的,如果你创建的虚拟环境不想要了,你随时可以移走删除。
在Anaconda中conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。所以对虚拟环境进行创建、删除等操作需要使用conda命令。
pip与conda比较:
- 依赖项检查:pip可能不显示所需其他依赖包,安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误,而conda会列出。
- 环境管理:pip维护多个环境较难,conda方便切换
- 对系统自带Python的影响:pip更新/回退版本/卸载可能影响其他程序,conda不会影响系统自带Python
- 适用语言:pip仅适用于Python,conda适用于多种语言
4、安装Anaconda
官方下载最新版的安装包:下载地址
可从列表下载历史安装包:下载地址
推荐国内清华镜像安装包:下载地址
Miniconda 安装包可以到 清华镜像站 下载
下面以windows版(Anaconda3-2024.06-1-Windows-x86_64.exe)做示例,下载好后,打开安装一直点击下一步就好,注意安装目录
安装好后,在任务栏可以看到Anaconda3文件夹:
5、配置Anaconda源
这一步非常重要!因为Anaconda的下载源默认在国外,如果不配置我们国内源的话,下载速度会慢到你怀疑人生的。而且很多时候会导致网络错误而下载失败。
国内常用镜像源
- 清华大学(推荐) https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云 http://mirrors.aliyun.com/pypi/simple
- 豆瓣 http://pypi.douban.com/simple/
打开Anaconda Prompt
,执行以下命令,将清华镜像配置添加到Anaconda中:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
然后我们输入conda info
命令查看当前的channel
,查看是否配置成功:
conda info
镜像源添加完成!
通过上图可以看到我的配置文件地址(user config file)打开.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/
即可添加 Anaconda Python 免费仓库。
运行 conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
运行 conda create -n myenv numpy
测试一下吧。
当然你也可以通过可视化界面来添加配置,打开Anaconda Navigator界面,选择虚拟环境,打开channels,add添加国内镜像源。按enter检测后,updatedate channels变亮,才可以更新。
二、conda创建虚拟环境并使用
1、创建虚拟环境
创建一个虚拟环境,然后在这个环境中配置各种各样的包,就可以在这个环境中运行目标程序的运行。
使用如下命令创建环境:
conda create ``-n` `环境名 ``-y
也可以指定python版本:
conda create ``-n` `环境名 python=x.x.x ``-y
python版本我们可以通过以下命令获取:
python -``-version
示例
因为我刚好要安装测试Story Diffusion用于Stable Diffusion绘画,所以就以storydiff为虚拟环境名字做示例吧。可以用以下两种命令创建
直接创建
conda create -n storydiff python=3.11
也可以在cmd窗口下切换到待安装位置目录下(默认的安装位置为.conda\envs),如果安装位置有权限限制,就用管理员权限打开cmd
conda create --prefix=storydiff python=3.11
指定路径创建虚拟环境
conda create -p=D:\StoryDiffussion\storydiff_env python=3.11
2、查看所有环境
查看conda
的所有环境,输入以下命令(二选一):
conda info -``-envs
conda env list
示例
列出conda有哪些虚拟环境
(base) C:\Users\dourungeng>conda env list
# conda environments:
#
base * C:\ProgramData\anaconda3
C:\Users\dourungeng\.chat\mamba\envs\devchat-commands
storydiff C:\Users\dourungeng\.conda\envs\storydiff
3、激活环境
创建好环境后,我们要激活才能使用。执行以下命令(三选一):
conda activate 环境名 ``# linux或者windows
activate 环境名``# windows
source activate 环境名 ``#linux
示例
激活进入虚拟环境storydiff
conda activate storydiff
或者使用指定的绝对地址激活
conda activate D:\StoryDiffussion\storydiff_env
4、安装包
执行以下命令,我们就可以下载工具包。(选择其中一种方式即可)
4.1 conda方式
# 在当前环境中安装包``conda install 包名称
# 指定版本号``conda install 包名称=version
# 在指定环境中安装包``conda install ``-n` `环境名 包名称
4.2 pip方式
pip install 包名称 ``-i` `https://pypi.tuna.tsinghua.edu.cn/simple ``#清华镜像
pip install 包名称 ``-i` `https://pypi.douban.com/simple ``#豆瓣镜像
说明:当使用conda insatll无法安装时,可尝试使用pip安装,反之亦然。
注意:
1、pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包
2、pip无法更新python,因为pip并不将python视为包
pip的详细用法可以参考我的上篇文章:【Python的pip配置、程序运行、生成exe文件】
4.3 从Anaconda Navigator
打开Anaconda Navigator,选中虚拟环境,搜索包,在前面选中要安装的版本,点击下面的 apply就可以了。
4.4 从Anaconda.org安装包
说明:当使用conda install
无法进行安装时,可以考虑从Anaconda.org中获取安装包的命令,并进行安装。
浏览器中输入https://Anaconda.org/search 搜索安装(无需注册)
复制“To install this package with conda run:”下方的命令,并粘贴在终端中执行
(base) C:\Users\dourungeng>conda activate storydiff #切换环境到storydiff
(storydiff) C:\Users\dourungeng>conda install conda-forge::diffusers #从上面复制过来的conda安装命令
5、查看该环境的所有包
查看一下环境现有的包(二选一):
conda list
pip list
查看安装的包的版本
- 使用
conda
命令
(storydiff) C:\Users\dourungeng>conda list diffusers
# packages in environment at C:\Users\dourungeng\.conda\envs\storydiff:
#
# Name Version Build Channel
diffusers 0.25.0 pypi_0 pypi
-
使用
pip
命令(storydiff) C:\Users\dourungeng>pip show diffusers Name: diffusers Version: 0.25.0 Summary: State-of-the-art diffusion in PyTorch and JAX. Home-page: https://github.com/huggingface/diffusers Author: The Hugging Face team (past and future) with the help of all our contributors (https://github.com/huggingface/diffusers/graphs/contributors) Author-email: patrick@huggingface.co License: Apache 2.0 License Location: C:\Users\dourungeng\.conda\envs\storydiff\Lib\site-packages Requires: filelock, huggingface-hub, importlib-metadata, numpy, Pillow, regex, requests, safetensors Required-by:
-
在Python解释器中
(storydiff) C:\Users\dourungeng>python Python 3.11.9 | packaged by Anaconda, Inc. | (main, Apr 19 2024, 16:40:41) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> numpy.__version__ '1.24.3' >>>
6、测试新安装的包
进入python测试一下新安装的包是否可用,命令如下:
(storydiff) C:\Users\dourungeng>python
Python 3.11.9 | packaged by Anaconda, Inc. | (main, Apr 19 2024, 16:40:41) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import diffusers
7、退出虚拟环境
使用以下命令,可以退出当前环境
conda deactivate # windows
source deactivate 环境名 # linux
8、删除虚拟环境
使用以下命令,可以删除指定环境(谨慎操作)
conda remove -n 环境名 --all -y
使用以下命令,可以删除当前环境的包
conda remove 包名称
使用以下命令,卸载指定环境中的包
conda remove -n 环境名 包名称
以上的-n均可用–name代替
示例
移除创建好的storydiff虚拟环境
conda remove -n storydiff --all
克隆环境 本地已有一个环境AAA,若想克隆一个BBB
conda create -n BBB --clone AAA
9、其他常用操作
除了以上操作,我还列举了其它常用的操作总结:
获取conda版本 | conda --version |
---|---|
更新当前conda版本 | conda update conda -y |
更新包版本 | conda update 包名称 -y |
更新所有包 | conda update --all或conda upgrade --all |
复制环境 | conda create -n 新环境名 --clone 旧环境名 |
查找可供安装的包版本 | 精确查找:conda search --精确查找的参数 被查找包的全名 |
查找可供安装的包版本 | 模糊查找:conda search 含有此字段名的包名 |
清除环境缓存 | conda clean 清除缓存 |
打包当前环境的所有包 | conda package --pkg-name-or-path [环境路径] |
列出所有已安装的包 | conda package list |
安装一个本地包: | conda package install [包路径] |
卸载conda环境中的包: | conda uninstall [包名] |
显示conda的帮助信息 | conda help [命令] |
配置conda行为的命令 | conda config 这个命令参数解释详见下方 |
注意,upgrade
命令也可以用update
命令来替代,两者是等价的:
conda config命令参数详解
conda config
是一个用于配置conda行为的命令。它允许用户修改conda的配置文件,这些文件通常位于用户的家目录下的.condarc
文件中。以下是一些常见的conda config
用法:
1. 查看当前配置
要查看当前的conda配置,可以使用:
conda config --show
这会显示.condarc
文件中的所有配置选项及其当前值。
2. 添加或修改配置项
要添加或修改配置项,可以使用以下格式:
conda config --set [配置项] [值]
例如,要添加一个新的通道(channel)到配置文件中,可以使用:
conda config --set channels conda-forge
3. 删除配置项
要删除配置文件中的某个配置项,可以使用:
conda config --remove [配置项] [值]
例如,删除之前添加的通道:
conda config --remove channels conda-forge
4. 添加环境变量
可以在配置文件中设置环境变量,例如:
conda config --set env_vars PATH="/usr/local/bin:$PATH"
5. 配置代理服务器
如果你需要通过代理服务器访问互联网,可以设置代理:
conda config --set proxy_servers.http http://user:pass@proxy.server.com:port
conda config --set proxy_servers.https https://user:pass@proxy.server.com:port
6. 配置SSL证书
如果要配置SSL证书,可以使用:
conda config --set ssl_verify [路径到证书]
或者禁用SSL验证(不推荐):
conda config --set ssl_verify false
7. 配置自动更新
可以设置conda是否自动更新自身:
conda config --set auto_update_conda true
8. 配置显示通道
可以设置是否在命令行输出中显示通道地址:
conda config --set show_channel_urls true
9. 配置命令行选项
可以设置一些命令行的默认选项,例如:
conda config --set always_yes true
这将使得conda在执行操作时不需要用户确认。
注意事项
- 使用
--set
时,如果配置项不存在,它将被添加;如果已存在,它将被更新。 - 使用
--remove
时,如果配置项不存在,命令将不会有任何效果。 - 配置更改后,可能需要重启conda或终端来使更改生效。
conda config
命令非常强大,它提供了许多配置选项,这里只列出了一些常用的。要了解所有可能的配置选项,请参考conda的官方文档或使用conda config --help
查看帮助信息。
10、环境的导入与导出
当我们去复现项目的时候,或者批量将项目运行在多个主机时,为了方便进行环境部署,最好能一键部署。就能大大减轻工作量,因为环境配置这个工作是很繁琐的。接下来我将用一个例子来演示。
假设我在虚拟环境1上运行了一个项目1,导出项目所用的环境,然后在虚拟环境2上导入该环境,并部署项目1
进入虚拟环境1
切换到项目根目录
执行下面的指令,导出环境。requirements.txt的格式大概如下图所示
pip freeze > requirements.txt
- 切换到虚拟环境2
- 将requirements.txt文件放到项目2的根目录下
- 执行下面的命令,导入环境。然后就会自动配置环境
pip install -r requirements.txt
注意这个方法,在安装pytorch的时候默认安装的cpu版本
在下载pytorch的GPU版本前一定要先卸载CPU版本
pip uninstall torch
可以选择适合自己的pytorch CUDA版本安装,比如按我自己的显卡版本,我要安装稳定版的就按下面选择
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
包默认安装位置
.conda/envs/环境名字/Lib/site-package
包/环境管理工具pip/conda说明:
pip和conda都是包管理工具,大多数情况下,二者区别不大。pip是Python官方指定的包管理工具,也可以理解为一种特殊的包,一般会默认安装。有时候如果pip命令安装失败,也可能是pip版本过低导致,可以尝试升级pip版本重新安装。一般情况下,如果是默认下载源,使用pip命令下载包会从官方指定的仓库PYPI下载,如果因为国内网速原因下载速度过慢,也可以变更下载源,比如将国外PYPI仓库改为国内的清华或阿里云等镜像下载地址。
更多关于pip的使用可以参考我上篇文章 【Python的pip配置、程序运行、生成exe文件】
关注我,后面会分享一些用 Stabale Diffusion WebUI和ComfyUI来绘图的文章。人工智能生成内容(AIGC)将改变人们的观念。