文章目录
前言
anaconda是python的环境管理工具,python是啥就不解释了,这里默认看这篇文章的是懂的。由于python是利用解释器来运行编写的代码,而官方又将解释器分为两大版本,即python2和python3,前者是高中时期的过时东西,后者就是现在普遍常用的版本。
在python3出来后,一直到今天,都是以此大版本为基础,发布了诸多小版本,直至现在已经是 python3.12了。(2024年2月20日)
而且python又是靠各种各样的库支撑起来的,有些库仅支持某个版本,或者某些库可能会冲突(最主要是这个)。为了避免安装了一堆库最后因为冲突产生“继续用但找不到代替,换另一种语言前期工作又白费”进退两难的局面,便出现了环境管理工具。
实际上所有下载的库都会放在一个文件夹内,我们只需要用解释器起到一个链接作用,这个文件夹放哪都行(找得到的话)。anaconda本质上是用来写python
代码的一个IDE,相比PyCharm和vscode,它确实算不上好用。但他最大的优点就是这个环境管理,所以被当做一个外挂工具来使用。
(有另一个可以做到类似anaconda的方法,这玩意10个g左右还是挺臃肿的,后面会讲这个方法)
anaconda 终端常用命令
-
查看虚拟环境列表:
conda info
-
anaconda换源:
conda env list
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/main/
conda config --set show_channel_urls yes
(这个做个示例,里面的源只拿了清华的,其他的到时候有需要换再搜) -
更改anaconda虚拟环境默认安装位置:
conda config --add envs_dirs D:\software\anaconda\envs
-
新建虚拟环境(不会用,下文有说明):
conda create -n [yourname][python=]
-
启用虚拟环境:
conda activate [yourname]
-
删除虚拟环境:
conda remove -n [yourname] --all
-
指定源安装(install后面跟需要的库名):
pip install opencv-python
vscode使用anaconda
大部分使用也是在终端上,vscode只是起到一个链接和文本编写作用,所以命令记录在上面部分。
没有什么要vscode装的插件,主要是一些设置(其实是第一次看的那个教学找不到了)。由于初学基本是先装一遍python环境的,所以这里默认读者有一定基础,并且已经完成前置的安装、换源等操作。所以本文只记录了一些操作,作为刚开始使用的基础操作说明。
创建一个虚拟环境:
按win键菜单栏找到对应项,一般文件夹名都是这个。(vscode里打开conda终端也行,但避免有找不到或打不开的情况)
- 终端界面输入conda create -n [yourname][python=]
- yourname
:英文的,自己想这个环境叫啥,比如ikun
- python=
:等号后面写你需要的版本号,如我需要3.11.8版本,则python=3.11.8
然后打开vscode,跟着下图
- 红框位置在vscode右下角
- 跟着顶部会弹出选择解释器菜单栏,前面创建虚拟环境之后,一般这里都会显示。
- 要是没有,就手动找路径。选择输入解释器路径,找到你安装的anaconda根目录后,根目录下有个envs文件夹,里面有你自己创建的虚拟环境,以环境名为文件夹划分。找到你目前需要的环境后,找里面的python.exe
,和刚开始搭环境一样。
最后就根据你当前代码需要什么库函数,在vscode的终端框内命令装就完事了(不知道库函数名,但知道函数名,可以直接百度搜这个函数名,相关的介绍文章一般都会有)。
关于另一种类似anaconda的方法
- 这块我们仅用到官方的解释器环境,和前面一样,也是默认读者此前已搭过一次环境。但这部分会涉及到搭环境的操作,并不是完全的搭环境教程,这点要注意一下(如果都会安装了,那后续部分其实就是搭环境里,环境变量那部分稍微改改,跟着弄也不是不行)。
一、改解释器.exe的文件名:
和搭环境时一样,找到你安装python的位置,文件夹名是安装程序自建命名的(应该大家都一样吧,末尾数字对应版本)
- 然后找到
python.exe
复制多一个出来放在同一个目录下,并改名。这里我是改成和文件夹一样,末尾跟版本号。- 红框是原来的,蓝框是复制出来改名后的
- 红框是原来的,蓝框是复制出来改名后的
- 后续就和搭环境的步骤一致了
二、在vscode直接创建虚拟环境
vscode里我们确定好项目文件夹,并在vscode的资源管理器打开后,vscode内打开终端,确认是当前项目文件夹路径,便输入以下命令:
python311 -m venv [.名字]
- 第一个参数就是上面改名那个,需要的版本下,改了什么名用什么名。(顺带有个错误示范)
- 中括号位置写这个环境的文件夹名,英文任意弹药带点,如:.hello。想不出来,直接写 .venv 吧,这样可能比花里胡哨的名字要清晰。(切记,中括号不用输进去)
这步完成后会在当前项目目录下创建对应名字的文件夹
- 蓝框是正确操作。
- 生成对应文件夹后,vscode会检测到并询问是否更换工作区,这个是第一种方法,也是最快捷的。
- 第二种方法是常规的,点右下角绿框顶部弹出菜单栏,对应名字选就是了。这个方法主要还是给现在不想换工作区,或者不小心关掉弹窗用的。
关于此方法的说明
以上图为例,目前我需要3.11版本的环境进行编译。
在编译时,首先输入的是python,便会在环境变量内标注的python解释器路径寻找对应名字的python.exe
,但默认的情况下,所有版本的环境都是python.exe
,就出现了环境冲突。
而此时我们改为输入python311,就会寻找python311.exe
,这时候我们仅有这一个,并且是在3.11版本的环境下才有这个文件名的解释器。冲突的方式就很好解决了。
至于各种库的下载,一个项目文件夹下一个虚拟环境文件夹,创建虚拟环境后,选择好对应的解释器,下载的库是保存在当前项目下的虚拟环境文件夹内,基本就和anaconda一样,冲突问题anaconda怎么解决,这里也怎么解决。(其实也就把那个文件单独丢另一个环境下,然后一起跑)
总结
弄过一两次后,最主要的其实是最上面的命令了。至于下面的方法各取所需,都有各自优缺点。
anaconda有图形化界面,捣腾一两次也算是熟练了。但是过于臃肿,点击没装什么库的环境,也得加载一会。装的库越多,加载的事件越长,甚至可能无法加载。而对某一个环境在图形化界面管理,要加载完才能做,如我要删掉某个安装了一堆库的环境,可能我图形化界面根本不能操作。而且这东西用着也有点卡,占用也高,每次开起来内存几乎吃满(16g内存)。
vscode的方法,不占地,少了启用环境的命令,管理环境也不怎么需要,毕竟跟着项目跑,也算是方便。要删直接删,或者跟着项目直接丢到云端(github或gitee)。缺点是自己配置的东西得记,长时间不用可能会因为忘记导致一堆问题。