1. 背景
-
经常在群里看到有人问,conda到底怎么管理,python的环境怎么隔离。或者类似于python环境管理之类的。这里做一次我经验分享。这不是最优的管理经验,只是作为一个参考。起码我就是这么用的。
-
python的环境管理类型太多了。比如
pyenv
、poetry
、conda
。各有千秋,但是我看很多做数据科学的,都是使用conda
。我也是从用python开始,也就是一直使用的是conda
。
2. anaconda
-
anaconda是一个公司名字;
-
然后这个叫anaconda公司做的一个软件也叫anaconda。这个软件可以方便你在系统上管理你的python各个版本。比如可以让你的电脑同时拥有python3.7,python3.6, python2.7等各种版本。如果有的包冲突,你也可以管理不同的环境。冲突也没什么问题。
-
对于什么是
anaconda
、minconda
、conda
。
- 3.1
anaconda
从软件这个角度来说,他是把常见的科学计算包,都给你打包好了。在你安装好之后,在base环境可以直接使用。就像是一个美味的包含各种美食的一个套餐
。 - 3.2
minconda
相对于anaconda
。就是只是给你安装了一个最基础的python。没有把numpy、pandas、sklearn等优秀的包也给你安装上去。你要自己安装,就像是给你了一碗盖浇饭
,想吃别的?你要自己点。 - 3.3
conda
就是一个管理工具,可以帮助你创建、修改 环境,是anaconda
和minconda
都带有的功能(你看名字也就看出来了)。conda
可以帮助你点菜
(也就是类似于pip的管理包),conda
可以帮助你找饭店
(比如python2.7这个饭店不符合你胃口,你就可以去找python3.9的饭店)。
3. 安装anaconda
在学习python的时候,安装python的环境,你只要无脑安装anaconda就行了。安装方式和教程,看我之前的文章,也就是下面的这个二维码:
4. conda必备技能
4.1. 查看解锁了多少家餐厅
conda env list
这个命令可以让你看到电脑上有那些环境。
比如上面的图中,base
环境只要是你安装了anaconda(包括minconda)都会有的。
比如别的环境dev
、forgroup
等都是我自己装的,每个人都不一样。
大部分培训班说到这可能就不说了,但是这里有个大坑。
- 一般来说自带的
base
确实即开即用,非常方便,但是你要是自己在base环境中,安装一些乱七八糟的包,就会把你的base环境搞崩溃。最后让你conda都损坏。有人可能问,有什么包会把环境搞坏呢。其实就是谷歌这鳖孙做的tensorflow
包就很容易把环境搞坏了。 - base这个环境承载的意义不一样,我们常用的conda、navigator都是在base环境中(我推测的)。所以base真的不可以乱动。
- base不能乱动,那我怎么用?请继续向下看。
4.2. 选餐厅
很多时候,在我们不知道哪家餐厅怎么样的时候,其实默认就是最好的。也就说虽然base环境我们不能瞎搞,但是内置了很多被anaconda选好的包,他们各个之间都不会互相冲突的。
所以虽然我们base环境不能直接拿来定制,但是我们复制一份,然后在复制的这一份上,做pip安装包、conda安装包之类的。
那么现在,我们基于base环境,做一个我们自己的环境,这个环境名称叫xbh0514
(含义是学不会0514。
conda create -n xbh0514 --clone base
create
代表创建一个新的环境(或者叫新餐厅).-n
是后面接名称,我这里设置的名称为xbh0514
.--clone
代表克隆一个环境,从哪里克隆?从base
环境克隆.
运行上面的这句话,等一会就可以看到下面的内容了:
4.3. 进入餐厅
上面的选餐厅之后,而且餐厅也盖完了,那你肯定要看看这个餐厅怎么样。怎么进去呢。就是直接使用下面命令进去。
conda activate xbh0514
进来之后,你想要安装包,比如你想要安装的包的名字叫geopandas
(我讨厌死这个包了)。
你可以直接使用pip安装,也可以使用conda安装,都是差不多的。
4.4. 怎么出餐厅
进入餐厅后,怎么出来呢?
conda deactivate
4.5. 餐厅倒闭了怎么关闭
当你进入餐厅后,你发现里面的各个菜在互相打架(不同的python包互相不兼容,最后导致环境崩溃)。那么你这个时候就要关闭餐厅了。
conda remove -n forgroup --all
- 上面就把
forgroup
这个环境删掉了(这个环境里面的所有内容,包括环境的名字,全都删掉,就没人知道你开过这家餐厅了)。那么你要是想要删除xbh0514
环境,你把forgroup
改为
xbh0514
就行了。 - 但是window系统一般除非重启一次,不然还是会在文件夹下留有一个和环境相同的名字的文件夹。实在不行,你执行上面的步骤后,再去删除文件夹。
4.6 环境介绍
要注意下面几点:
- 上面的
xbh0514
环境和base
后面,没有任何关系。 - 要严格准守conda的要求,有什么需求,多去查查,不会百度,就去bing、搜狗都是可以的。
- 别老想着在window系统安装的环境怎么传递到linux环境。这种肯定会出现问题。(但是好像conda可以在同一局域网下分享环境,我没操作过,不清楚)。
5. 编辑器里面选择环境
5.1 基于pycharm专业版(普通版差不多)
注意勾选☑️ 可用于所有项目,最后点击确定。添加好之后,就可以在python解释器看到列表:
以后一步步选择,确定就好了。
看看右下角环境已经从dev
换成了xbh0514
。(这个时候,你电脑如果咆哮了,那就说明pycharm开始为这个xbh0514
环境构建索引了。)
5.2 基于vscode
你的vscode起码要有对应的python插件,比如下面这几个:
5.2.1 对于全局环境
打开terminal,看一下有没有切换好:
已经切换好了。
5.2.2 对于ipynb环境
最后
- 本文算是我对conda介绍的最多的一次,也对pycharm、vscode这两个工具做了基本的延伸。
- 每次遇到小问题,先看包是不是安装好了,在看是不是环境用对了,经常遇到的情况是:
包安装在环境A, 结果在环境B里面找不到包
。 - 后面不会再介绍关于conda环境管理的内容了,上面的这些知识基本上够用了。如果遇到跟多问题,去使用搜索引擎。推荐bing、搜狗、谷歌等。
阅读更多
list