venv虚拟环境

title: venv虚拟环境 id: 198bab7271a631ccb15e0a32dc6370e4 tags: [] date: 2025/03/12 09:54:08 updated: 2025/03/12 09:54:08 isPublic: false --#|[分隔]|#--

venv虚拟环境

我最熟悉nodejs,这里用nodejs作类比。

nodejs中,在项目文件夹下使用npm安装第三方库,默认情况夏,这些库的文件都会下载放到当前文件夹下的node_modules文件夹下,不会影响全局和其他项目。

除非安装时使用 --global 指令,才会安装到全局。

而python不一样,他默认是安装到全局的,这样其他python项目也可以使用,这样是很不友好的,因为每个项目使用的库的版本,很可能不一样。

所以python需要解决这个问题,就有了「虚拟环境」概念。

说起来高大上,实际上也就是一个类似nodejs,默认把第三方库安装到当前文件夹下的功能。

在 python 3.3 之前的版本,python没有提供这样的工具,开发人员需要自己安装第三方库实现「虚拟环境」的功能。

python 3.3 以及更新的版本中,python自带了,就是 venv,所以直接使用venv就可以了。

安装并激活

在某个文件夹下,使用 python -m venv [路径] 的指令创建虚拟环境文件夹。

# 执行下面的指令,则会在当前文件夹下,创建名为 venv 的文件夹,这个文件夹就是 venv 生成的虚拟环境文件夹
python -m venv venv

执行完成后,还需要激活,下面是mac系统的激活方式:

source ./venv/bin/activate

执行后,当前终端就处于这个环境中了,此时再使用 pip 安装第三方库,就会安装在虚拟环境文件夹中而不是全局了。

实际上,虚拟环境的激活,就是被修改了一下系统变量,让当前终端的第三方库的安装和使用路径,改为./venv/bin/lib

如果想退出虚拟环境,则直接执行下面这个指令即可:

判断当前终端是否已启用虚拟环境

比较麻烦。

但也挺简单,很简单几个指令。

  • 首先在终端中输入 python,会进入 python 语言环境

  • 输入 import sys,引入 sys 模块

  • 在输入 sys.prefix,可查看当前虚拟环境的路径,就看这个路径是不是当前项目文件夹下的虚拟环境文件夹就行。

vs code的自动使用虚拟环境

见标题,使用vs code打开一个存在虚拟环境文件夹的python项目,再在vs code中启动终端,终端会自动识别虚拟环境并激活,省去了手动激活虚拟环境的步骤。

有个两个前提

  • 已安装了 python 插件,正常情况既然要开发python,这个插件必然已经安装了。

  • 当前项目下存在 「虚拟环境文件夹」,同时,当前目录或子目录中存在**.py**文件。

虚拟文件夹的判定,是 vs code 自动判断的,无论这个文件夹的名字是什么。

Last updated

Was this helpful?