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
如果想退出虚拟环境,则直接执行下面这个指令即可:
# 退出虚拟环境
deactivate
判断当前终端是否已启用虚拟环境
比较麻烦。
但也挺简单,很简单几个指令。
首先在终端中输入
python
,会进入 python 语言环境输入
import sys
,引入 sys 模块在输入
sys.prefix
,可查看当前虚拟环境的路径,就看这个路径是不是当前项目文件夹下的虚拟环境文件夹就行。
# 进入python语言环境
python
# 引入 sys 模块
import sys
# 打印环境路径
sys.prefix
vs code的自动使用虚拟环境
见标题,使用vs code打开一个存在虚拟环境文件夹的python项目,再在vs code中启动终端,终端会自动识别虚拟环境并激活,省去了手动激活虚拟环境的步骤。
有个两个前提:
已安装了 python 插件,正常情况既然要开发python,这个插件必然已经安装了。
当前项目下存在 「虚拟环境文件夹」,同时,当前目录或子目录中存在**.py**文件。
虚拟文件夹的判定,是 vs code 自动判断的,无论这个文件夹的名字是什么。
Last updated
Was this helpful?