虚拟解释器环境 venv
您需要高效学习,找工作? 点击咨询 报名实战班
点击查看学员就业情况
什么是虚拟解释器环境
随着我们用python开发的程序越来越多,需要的第三方库也会越来越多,这些第三方库都安装在site-packages目录下面,这个目录就会越来越臃肿。
更大的问题是:我们可能会开发两个软件项目,对同一个库, 需要不同版本的。
比如 一个新项目需要使用 Django3.0 版本,因为需要使用3.0里面新增的异步特性
而同时还要维护一个老项目使用的是 Django2.0 ,不敢随便升级到3.0,害怕带来潜在的bug。
Python 的 虚拟解释器环境技术 venv ,就可以很好的解决这个问题。
它可以让我们创建 多套彼此分隔的 虚拟解释器环境
,每个虚拟解释器环境可以安装各自需要的第三方库,互不干扰。
为什么叫 虚拟
呢?
因为它并不是完全的拷贝了整个原来你安装的 系统解释器环境
,而是从原来的系统解释器创建了 分身
。
虚拟环境还是会大量依赖系统解释器环境里面的东西,所以是 轻量级的
创建 虚拟环境
可以执行下面的命令,创建一个虚拟的解释器环境
注意上面例子里面的 e:/my/venv1
就是虚拟解释器环境所在的目录。你可以改名为你喜欢的名字。
执行完命令后,就会创建 这样的 一个目录。 里面包含了如下内容
scripts目录里面的包含了
激活为缺省解释器环境
如果你希望当前命令行窗口的操作,缺省都是使用这个虚拟解释器环境,就可以执行该虚拟环境 Scripts
目录下的 activate.bat
。
这样当你执行 python
或者 pip
命令时,优先找到的就是这个虚拟环境里面的 python.exe
和 pip.exe
了。
# 未执行activate.bat前,使用的是系统 Python 解释器
C:\>where python
C:\Python\Python311\python.exe
# 执行 activate.bat后, 优先使用的是虚拟环境 Python 解释器
C:\>c:\Python\venvs\ocr\Scripts\activate.bat
(ocr) c:\>
(ocr) c:\>where python
c:\Python\venvs\ocr\Scripts\python.exe
C:\Python\Python311\python.exe
(ocr) c:\>where pip
c:\Python\venvs\ocr\Scripts\pip.exe
C:\Python\Python311\Scripts\pip.exe
比如直接执行 pip install selenium
, 就会安装selenium到这个虚拟环境
使用系统环境安装的第三方库
上面的命令创建的虚拟环境,缺省可以使用系统解释器环境 标准库
,比如 sqlite、tkinter、re 等等
都不会有问题。
但是, 不能使用 第三方库
。
比如你已经用 pip install 安装好的 django、requests、selenium这些,通常在 site-packages
目录中
如果要让虚拟环境 可以直接使用 系统解释器环境 里面 site-packages目录中的库:
-
可以在创建虚拟环境的时候,加上
--system-site-packages
参数 -
也可以修改虚拟环境目录中的
pyvenv.cfg
文件
设置 include-system-site-packages
值为 true