## 前言

### 情景1
在日常工作中,经常会面临同时管理多个项目,不同项目需要不同版本的软件包

  • 项目1的python版本可能是2.7
  • 项目2的python版本可能是3.9
  • 项目3的python版本可能是3.11
  • ...

如果每个版本都是在官网下载的安装包,直接安装到电脑上,那简直是一种灾难....各个版本的依赖包互相打架,折腾到最后有可能连Hello world都运行不起来

### 情景2
我是个新手,想学习python,但是不知道安装哪个版本的,于是我自己随便选了一个版本,安装之后开始一顿操作,遇到问题之后,网上一查,发现xx库需要python的某个版本,然后我刚好安装的是另一个版本,然后卸载,但是卸载不干净,导致安装另一个版本的时候,一通报错,但是这个报错别人都没遇到,,,,

于是,立即推===>放弃学习python....

所以,需求就来了,有没有什么工具可以让一台电脑可以同时安装多个版本的python,而且每个版本必须要相互隔离,不能相互干扰,还能方便安装卸载的,这就是今天要介绍的工具——conda

conda在学习阶段、工作上都特别实用,环境玩坏了,直接清空删除,随时重来。

## conda简介

conda是一个命令行的包管理工具以及环境管理工具。

Anaconda是conda的图形界面版本,就是用鼠标点点点就行,不用输入命令也可以用conda。

conda官网: https://docs.conda.io/projects/conda/en/latest/index.html

## 安装 conda

Anaconda是带图形界面,上手确实方便,不过预装的时候也会自带装了很多包,运行起来效率不是很高,因此这里我们只安装一个Miniconda,顾名思义就是迷你版的conda,只有最基础的conda环境,用命令行操作,占用的运行内存少一点。

注意注意:

安装之前,确保电脑里面没有安装 python 环境,如果有,先卸载再安装,因为 miniconda 本身自带了一个 python,很有可能会和你电脑上的产生冲突。

94726205b2565e66287b3ba0131d47a0.png

首先到官网下载安装包:Miniconda miniconda documentation

点击这个Miniconda3 Windows 64-bit就行了。

下载下来,双击一路安装下去就行:
4c8cea2c9d1fd879f91ff5792de480c5.png
继续
61d9bd4a7e6494024ab10239123a0e70.png

继续
232f2e9fc66fecb13e0b8a8f12e713ed.png

这里最好就是默认给它放C盘,

要是C盘容量不够,也可以改到其它盘,但最好别带中文路径,只是一点建议。
05d75dbc634b3a7991317d86c9b38537.png

继续
615fe729c46734d440a1a4c2a3ae0a28.png

继续
9d21504b670493444e473e1082ba8ff8.png

继续
08b39525746611517eb82767d417ab76.png

最后点开始菜单,看到conda已经安装完就说明安装成功了

afe4c04ddb340c37b4950651b0676131.png

打开cmd命令行版本的conda
0a6a638c837f7778d11e2cd8581bf64c.png

输入以下命令,看到版本号就说明成功了。

conda --version

4f1f112f7a5579600675759ff61c4c8b.png

## 更换源

由于 conda 默认安装源是在国外,用conda去安装各种包的时候,默认是到国外的服务器下载的,下载会很慢,更换源就是让conda下载的时候,到国内的服务器去下载。

无论是 windows、macOS 还是 Linux,更换源的方式都是修改家目录下的.condarc文件即可

如果没有.condarc文件,使用输入以下命令生成该文件

conda config --set show_channel_urls yes

7069427883ea269550f98e1c96d7c5c9.png

执行该命令后,会在 home 目录下生成该文件,

  • windows路径: D:\Users\你电脑的用户名\.condarc
  • Linux、MacOS路径:~/.condarc

2fa1f29dc29f8e41d00350f06d36dc62.png

用记事本打开编辑.condarc文件,将其中内容清空,替换成以下内容

此处配置为清华大学开源软件镜像站: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
  msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
  bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
  menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.bfsu.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.bfsu.edu.cn/anaconda/cloud/

5774ba249163ef0e88b8f2536fbd3bfd.png
配置之后,保存文件,然后在命令行输入以下命令,清空之前的缓存

conda clean -i

d5eb4d9470b460d5b08b299b4d04d176.png

最后可以输入以下命令,查看配置的源是否成功

conda config --show-sources

c8183af8c74298003614701181711a43.png

## 创建一个环境

安装好了,源也配置成国内的了,现在就来创建一个环境来瞅瞅。

### 创建环境

创建的语法格式如下:

conda create --name 自己取个环境名称 python=版本号

现在python已经更新到3.13了,

....我上一次逛官网,是3.11,不过我们也没有必要安装这个最新的,只需安装一下前面几个稳定版本就行了,有些项目现在还在3.6呢

先创建一个3.10版本的吧,输入如下命令创建

conda create --name myenv python=3.10
--name后面的名字要英文,你怎么叫都可以,英文字母开头,支持英文加数字。这里就叫myenv,就是my environment,我的环境的意思
python=3.10,每次创建的时候,都得指定以下python的版本,不然创建空的环境,貌似有些坑,你也可以自己试一下。这建议是创建的时候就指定python版本的

1e9e91361cd7ca24d09ab2d1cdd1408b.png

这里安装应该会很快
1ffbacb4b7065f96ebb4bb3ef1023444.png

看到提示就说明环境已经创建完成了,看提示输入激活环境的命令

conda activate myenv

b6dc91e0a28a4fbf6353314aaee16e51.png

注意看,前面的(base)环境已经切换成(myenv)环境了,就说明已经切换成功了。

base是安装conda的时候就默认创建的环境,一般都不在这个环境下操作

接下来,写一下python的hello world,运行一下,试试环境里面的python是否能正常运行。

在桌面或者随便一个地方新建一个txt文件,然后把后缀名修改成py

如果看不到后缀名,打开资源管理器,查看,勾选文件扩展名ab6ff745ba7ca158d569a6e0acb3719a.png

如下:

02b1507a6a413b02ac1fe6bab598a6ad.png

然后用记事本打开,在里面写下内容:

print("hello world")

fa10a497c305a0b863d7ff744bce660a.png

然后在命令行,切换到这个文件所在的目录,

输入

python 01测试.py 

看看结果是否会打印一句Hello world

f5d0211d8e78ecf5b7d75f6a513cb9a6.png

ok,成功。

这是截图最多的一篇了,后面我会尽量减少图片的使用,希望大家能尽量只读文字就能学会。

毕竟,python的官方文档可没有这么多图片,甚至没有图片,所以只看文字就能看懂这事,很重要,python更新这么快,conda也会更新,终有一天,还是要靠自己去查官方文档滴,大家加油。

## 小结和补充

上面我们进行了一堆操作,简单小结一下,本文的内容:

  1. 如何安装conda
  2. 用conda创建一个环境
  3. 在创建好的conda环境里面,运行一个python脚本

### 补充
大家对conda环境这个概念可能还是有些模糊,只知道输入了一行命令就创建了,但是命令输入创建之后,它干什么了就说环境有了?我看不到虚空中的环境啊?

这里就做一个简单的具象化,当我们输入conda create xxxx创建完成之后,其实就会在你电脑的C:\ProgramData\miniconda3\envs这个路径下,创建一个文件夹,文件夹的名字就是你创建环境时输入的名字,
如下:

76cef405945e44c3c1cfe987affb48be.png

打开myenv进去看看,看到一堆文件

702e3423a341cd53c23e066404ca937e.png

别急往下一直划:

fcf4582512dfe970f10cc60b663d9479.png

咦?怎么有个python.exe,这个貌似有点眼熟啊

给大家提个醒,就是你随便在你电脑安装一个软件的时候,是不是会在安装目录下看到一个和软件名一样的exe文件?
就拿最简单的微信来说吧,大家可以去翻翻微信的安装目录下看看,是不是就有这么一个exe文件,只不过是微信的英文名而已:
f6e43af3ada40188112970eae4a16150.png

所以这个myenv文件夹里面的内容,就是python安装完之后,它的安装目录下的所有文件,即是说,当我用conda create命令去创建一个环境的时候,conda就是帮我安装了一个python,只不过这个安装路径这些已经被他锁死在envs这个文件夹里面了。当然,它不只是锁定安装目录这么简单,还有包管理,安装某个库的时候,也会和这个版本关联起来。

可以自己去官网上下载一个python版本,安装,然后去安装目录下看看是不是和conda这里面的环境一样
371912e7989a4d3014e9d24b1f78cda7.png

比如我现在再创建一个叫test01的

conda create --name test01 python=3.12

a062c9d4be4c7f1e041c8ad0f0114eb4.png

然后再去C:\ProgramData\miniconda3\envs目录下看一下:
356b53031fe77dac3f7a823d3e7615c6.png

进去test01:

99d53bcdba6a54b65f13d9e20e804b48.png

不敢说myenv的一模一样,只能说毫无差别。

所以大家可以 简单理解,conda就是帮你快捷安装python的工具,安装的python都是被隔离起来的,而且可以用conda的命令随时切换到不同的python版本。

以后基本都是在conda环境下进行学习的。而不是以前的那种,只在官网下载一个版本,然后就开始写了。灵活性太差。

## 检验

读完这篇文章之后:

  1. 你是否能够正确安装conda?
  2. 能否自己更换一下conda的镜像源成另外的源,见最后面的参考,文章中的源是清华开源镜像的,大家可以自己百度搜索,试着换其他源试试。
  3. 试着创建一个环境,并且在那个环境下运行一个python脚本,就运行一下上期说的那个查看dwg文件版本的那个脚本吧

## 其它镜像源参考: