Python虚拟环境
Python 应用经常需要使用一些包第三方包或者模块,有时需要依赖特定的包或者库的版本,所以不能有一个能适应所有 Python 应用的软件环境,很多时候不同的 Python 应用所依赖的版本是冲突的,满足了其中一个,另一个则无法运行,解决这一问题的方法是 虚拟环境。虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利
虚拟环境主要是利用了操作系统中环境变量以及进程间环境隔离的特性,激活虚拟环境之时,激活脚本会将当前命令行程序的PATH修改为虚拟环境的,这样执行命令就会在被修改的 PATH 中查找,避免了原本 PATH 可以找到的命令,从而实现了 Python 环境的隔离,python虚拟机环境有两种使用方式,一种是自带的venv库(从python3.3开始引入),一种是安装的第三方库Virtualenv
内置venv库
1、有些系统,比如ubuntu通过apt安装的python,为了节省空间,可能不会安装venv库,因此可以先查看是否安装,如图:

如果没安装,可以执行命令apt install python3.12-venv 安装即可(这里演示的是3.12版本)
2、创建虚拟环境,命令如下:
python3 -m venv /data/path 后面是自定义路径

3、激活虚拟环境,激活后可以看到已经进入了环境中,如图:
source /data/pyproject/jupyter/bin/activate

4、退出虚拟环境,如图:

使用Virtualenv库
1、安装Virtualenv库,执行命令如下:

查看安装是否成功,执行命令如下:

2、创建虚拟环境
通过命令virtualenv命令在当前文件夹中(也可以自定义文件夹)创建python虚拟环境,一般虚拟环境的名字都是命名为venv,本例子演示名称为myvenv,命令如下:

- –system-site-packages:表示不包括系统全局的的python安装包,这样环境更加干净
- -p:指定Python版本
- –no-pip:不需要安装 pip,默认为安装
- –clear:如果创建虚拟环境的目录已经有了其他虚拟环境,清除重建
更多参数参考virtualenv -h
创建后可以看到文件夹myvenv下内容如图所示:

3、激活虚拟环境,执行如下命令即可,如图:

注:如果是windows环境,执行myvenv/Scripts/activate即可
4、退出虚拟环境,执行如下命令即可,如图:

测试
1、在虚拟环境中,使用pip安装pymysql库,如图:

2、进入python终端,使用import导入,如图:

从上图可以看出,pymysql导入成功
3、退出虚拟环境,回到外层来,再次进入终端导入pymysql,如图:

可以看出,此时提示没有模块pymysql,由此可以看出已经实现了内外环境的隔离


