# python 环境搭建
#c py环境复杂  
在实际的工程应用中,  
经常会需要依赖python环境,  
但是不同的工程需要不同的python环境,  
所以我们需要针对性的创建对应的python环境.

#d 系统多样性  
在不同的系统下,我们有不同的python环境安装管理方式

## ubuntu下管理
#d python版本查看  
一般在命令行输入`python -V`或者`python --version`   
即可查看python版本

#e 查看已经安装的python  
下面命令可以列出已经安装的python
```shell
ls /usr/bin/python*
```

#d 配置默认`python`版本  
在ubuntu下,默认的python版本是2.7,   
但是部分软件可能无法正确处理依赖去使用`python3`,  
需要手动配置一下默认的python版本.

#d 用户环境与系统环境  
用户环境一般使用`~/.bashrc`文件来配置,  
用户环境配置下仅针对当前用户生效,  
可能有的软件需要配置系统的环境


#e 设置用户默认python  
编辑`~/.bashrc`文件  
```shell
vim ~/.bashrc
```
输入`i`进入编辑模式,
在文件末尾添加如下内容:
```shell
alias python=/usr/bin/python3
alias pip=/usr/bin/pip3
```
刷新环境
```shell
source ~/.bashrc
```
查看配置是否生效
```shell
python -V
pip -V
```

#e 配置系统环境
使用软连接的方式配置系统环境  
获取本机安装的python环境路径
```shell
ls /usr/bin/python*
```
安装指定版本的python, 例如python3.7
```shell
sudo apt install python3.7
```

移除默认的python环境
```shell
rm /usr/bin/python
rm /usr/bin/pip
```

连接新的python环境
```shell
ln -s /usr/bin/python3.7 /usr/bin/python
```
查看配置是否生效
```shell
python -V
```

#d 配置`pip`  
一般情况下`pip`会跟随`python`环境一起安装,   
切换python环境时`pip`也会跟着切换,
但是有时候我们可能需要手动配置`pip`的环境,  
可以输入`pip -V`查看`pip`的版本,以及对应的python版本,

#e `pip`环境查看  
```shell
pip -V
```
可以看见如下输出, 可以看见当前的pip版本是23.2.1, 对应的python版本是3.8
```result
pip 23.2.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
```

### `python`虚拟环境
#d 虚拟环境  
在实际工程中,我们可以为每一个工程创建一个虚拟环境,  
这样该工程可以使用单独的python环境  
虚拟环境可以隔离不同工程之间的依赖  

#e 安装虚拟环境  
安装虚拟环境需要依赖`venv`模块,
```shell
sudo apt install python3.7-venv
```

#e 设置虚拟环境  
创建并使用虚拟环境
```shell
python3.7 -m venv ./.env
source ./.env/bin/activate
```
#e 退出虚拟环境
```shell
deactivate
```