文章目录
虚拟环境venv介绍
官方介绍:
venv 模块支持使用自己的站点目录创建轻量级“虚拟环境”,可选择与系统站点目录隔离。每个虚拟环境都有自己的 Python 二进制文件(与用于创建此环境的二进制文件的版本相匹配),并且可以在其站点目录中拥有自己独立的已安装 Python 软件包集。
个人需求、理解和使用场景:
- 在同一台机器上运行的python项目文件需要不同的特定python版本,比如python2项目和python3项目
- 在编写一些项目时,避免其他项目的模块或者配置的干扰,独立出一个单独的python环境(相当于在一台纯净的机器上重新安装了python一样)
- 防止莫名的报错!(个人体会最深,因为刚开始用python时明明都用的好好的,但是在同一个解释器环境下安装的模块多了,就容易报一些莫名其妙的错误,而且代码并没有错误,很大原因就是模块引用之间的冲突,例如我之前在用多线程时,经常报错 json 模块没有 loads 方法,后来才知道是环境问题)
基本使用方法
创建虚拟环境
linux环境:
python3 -m venv /path/to/new/virtual/environment
运行此命令将创建目标目录(父目录若不存在也将创建),并放置一个 pyvenv.cfg 文件在其中,文件中有一个 home 键,它的值指向运行此命令的 Python 安装(目标目录的常用名称是 .venv)。它还会创建一个 bin 子目录(在 Windows 上是 Scripts),其中包含 Python 二进制文件的副本或符号链接(视创建环境时使用的平台或参数而定)。它还会创建一个(初始为空的) lib/pythonX.Y/site-packages 子目录(在 Windows 上是 Lib\site-packages)。如果指定了一个现有的目录,这个目录就将被重新使用。
win环境:
python -m venv \path\to\myenv
激活进入虚拟环境
- 进入到对应项目目录下的:\venv\Scripts
- 然后打开命令行输入
activate
- 然后在命令行的盘符前面就可以看到多了 (venv) 字符,代表成功激活虚拟环境
虚拟环境是一个 Python 环境,安装到其中的 Python 解释器、库和脚本与其他虚拟环境中的内容是隔离的,且(默认)与“系统级” Python(操作系统的一部分)中安装的库是隔离的。
虚拟环境是一个目录树,其中包含 Python 可执行文件和其他文件,其他文件指示了这是一个是虚拟环境。
常用安装工具如 setuptools 和 pip 可以在虚拟环境中按预期工作。换句话说,当虚拟环境被激活,它们就会将 Python 软件包安装到虚拟环境中,无需明确指示。
当虚拟环境被激活(即虚拟环境的 Python 解释器正在运行),属性 sys.prefix 和 sys.exec_prefix 指向的是虚拟环境的基础目录,而 sys.base_prefix 和 sys.base_exec_prefix 指向非虚拟环境的 Python 安装,即曾用于创建虚拟环境的那个 Python 安装。如果虚拟环境没有被激活,则 sys.prefix 与 sys.base_prefix 相同,且 sys.exec_prefix 与 sys.base_exec_prefix 相同(它们均指向非虚拟环境的 Python 安装)。
当虚拟环境被激活,所有 distutils 配置文件中更改安装路径的选项都会被忽略,以防止无意中将项目安装在虚拟环境之外。