news 2026/8/30 8:38:26

Python 内置 venv 虚拟环境工具完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 内置 venv 虚拟环境工具完全指南

venv 是 Python 3.3 + 自带的内置虚拟环境工具,无需额外安装,核心作用是为不同 Python 项目创建隔离的运行环境,避免依赖包版本冲突。下面详细讲解它的创建、查看、激活、退出等核心操作,同时覆盖不同系统的差异。

一、前提准备

确保你的系统已安装 Python 3.3+(可通过python3 --versionpython --version验证)。部分 Linux 系统(如 Ubuntu)默认未安装 venv 模块,需先执行以下命令安装依赖:

# Ubuntu/Debian系列 sudo apt update && sudo apt install -y python3-venv

二、核心操作详解

1. 创建虚拟环境

(1)基础创建(默认隔离模式)

命令格式:

# 基础命令:在当前目录创建名为【环境名】的虚拟环境(默认不继承系统全局包) python3 -m venv 环境名

示例

# 创建名为my_project_venv的虚拟环境(隔离模式) python3 -m venv my_project_venv

说明:执行命令后,当前目录会生成与 “环境名” 同名的文件夹,包含 Python 解释器、pip 工具、依赖包存储目录等。默认情况下,虚拟环境是完全隔离的,不会使用系统全局安装的 Python 包,所有依赖需重新通过 pip 安装。

若系统存在多个 Python 版本(如 Python3.8、Python3.10),可指定具体版本创建:

python3.8 -m venv my_project_venv_38 # 使用Python3.8创建虚拟环境 python3.10 -m venv my_project_venv_310 # 使用Python3.10创建虚拟环境
(2)带 --system-site-packages 参数创建(继承系统全局包)
参数含义:

--system-site-packages是 venv 的核心可选参数,作用是让创建的虚拟环境继承系统全局 Python 环境中已安装的包(如系统全局安装的 numpy、tensorflow 等),避免重复下载大型依赖包,节省磁盘空间和时间。

适用场景:
  • 系统已全局安装某个大型库(如深度学习框架、科学计算库),多个项目需共用该库,无需重复安装;
  • 部分库依赖系统底层环境(如硬件驱动相关包),全局安装后需在虚拟环境中直接使用。
命令格式与示例:
# 带系统包继承的创建命令 python3 -m venv --system-site-packages 环境名 # 示例:创建继承系统全局包的虚拟环境(命名建议带标识,方便区分) python3 -m venv --system-site-packages my_project_venv_with_global
关键注意事项:
  1. 继承时机:仅在虚拟环境创建时同步系统全局包,后续在系统全局安装的新包,不会自动同步到已创建的虚拟环境(需重新创建或手动在虚拟环境中安装);
  2. 版本优先级:虚拟环境中通过 pip 安装的包,优先级高于继承的系统全局包(即若虚拟环境和系统全局安装了同一包的不同版本,会优先使用虚拟环境中的版本);
  3. 兼容性风险:若系统全局包版本与项目需求冲突,可能导致项目报错,此时建议使用基础隔离模式创建虚拟环境,单独安装适配版本的依赖。

2. 查看虚拟环境

核心逻辑:venv 创建的虚拟环境本质是普通文件夹,没有专属的查询命令,需通过系统的文件查询指令查看。

不同系统操作:

系统类型查看命令说明
Linux/macOSls 目录路径(默认当前目录直接输入 ls)列出指定目录下的文件夹,虚拟环境文件夹即为已创建的环境(如 my_project_venv)
Windows(CMD)dir 目录路径(默认当前目录直接输入 dir)列出当前目录下的文件夹 / 文件,可见虚拟环境文件夹
Windows(PowerShell)Get-ChildItem(简写 gci)效果同 dir,更简洁的 PowerShell 指令

示例(Linux/macOS):

# 查看当前目录下的虚拟环境 ls # 输出:my_project_venv my_project_venv_with_global (两个虚拟环境文件夹) # 查看指定目录下的虚拟环境(如~/projects/venvs/) ls ~/projects/venvs/

3. 激活虚拟环境

激活后,终端会显示虚拟环境名称前缀(如(my_project_venv)),此时通过 pip 安装的依赖会仅存于该环境(继承模式下,新增依赖仍安装在虚拟环境内,不影响系统全局)。

不同系统激活命令:

系统类型激活命令
Linux/macOSsource 环境名 /bin/activate(示例:source my_project_venv_with_global/bin/activate)
Windows(CMD)环境名 \Scripts\activate.bat(示例:my_project_venv_with_global\Scripts\activate.bat)
Windows(PowerShell).\ 环境名 \Scripts\Activate.ps1(示例:.\my_project_venv_with_global\Scripts\Activate.ps1)

激活成功标识:终端前缀会新增(环境名),例如:

  • Linux/macOS:(my_project_venv_with_global) user@localhost:~$
  • Windows:(my_project_venv_with_global) C:\Users\XXX\>

验证激活状态(可选):

# 查看当前Python路径(指向虚拟环境内的Python解释器) which python3 # Linux/macOS where python # Windows # 查看当前pip路径(指向虚拟环境内的pip) which pip3 # Linux/macOS where pip # Windows # 验证继承的系统包(继承模式下执行,可看到系统全局安装的包) pip list # 列出虚拟环境中的所有包(含继承的系统包和后续安装的包)

4. 退出虚拟环境

命令(所有系统通用):在已激活虚拟环境的终端中,直接输入以下命令,无需额外参数:

deactivate

退出成功标识:终端前缀的(环境名)消失,恢复到系统默认终端样式,此时操作会回到系统全局 Python 环境。

三、补充操作:删除虚拟环境

venv 虚拟环境是普通文件夹,直接删除对应文件夹即可(删除后不可恢复,需谨慎操作):

系统类型删除命令 / 操作
Linux/macOSrm -rf 环境名(示例:rm -rf my_project_venv_with_global)
Windows手动删除环境文件夹,或在 CMD/PowerShell 中执行 rd /s/q 环境名(示例:rd /s/q my_project_venv_with_global)

四、核心总结

操作命令格式关键说明
基础隔离模式创建python3 -m venv 环境名完全隔离系统全局包,依赖需重新安装,无版本冲突风险
继承系统包创建python3 -m venv --system-site-packages 环境名继承系统全局包,节省空间,注意版本兼容性
激活虚拟环境按系统选择对应命令(如 Linux:source 环境名 /bin/activate)激活后终端带环境名前缀,操作仅作用于当前环境
退出虚拟环境deactivate所有系统通用,退出后回到全局 Python 环境
查看虚拟环境ls(Linux/macOS)/ dir(Windows)虚拟环境本质是文件夹,通过系统命令查看
删除虚拟环境rm -rf 环境名(Linux/macOS)/rd/s /q 环境名(Windows)直接删除文件夹,需先退出虚拟环境,删除后不可恢复

venv 轻量、无额外依赖,是简单 Python 项目环境隔离的首选工具。基础隔离模式适合大多数场景,--system-site-packages参数则为大型依赖复用提供了便捷方案,可根据项目需求灵活选择~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/25 11:01:39

从源码编译到推理验证:Open-AutoGLM安装全过程详解

第一章:Open-AutoGLM推理引擎框架概述Open-AutoGLM 是一个面向通用语言模型自动推理任务的高性能开源引擎框架,专为支持复杂逻辑推理、多跳问答与程序生成等高级自然语言处理场景而设计。该框架融合了符号推理与神经网络推断的优势,通过模块化…

作者头像 李华
网站建设 2026/8/29 20:42:12

挖矿木马到底是什么?我猜你对此还一无所知

挖矿木马主要就是通过利用各种手段,将挖矿程序植入到用户的计算机中,在用户不知情的情况下,偷偷利用用户的计算机进行执行挖矿功能,从而获取收益。 以下情况是用户中木马的高频事件: 1.用户往往在不注意的时候&#…

作者头像 李华
网站建设 2026/8/21 5:44:40

国外论文参考文献怎么找:实用查找方法与资源推荐

生成式人工智能的浪潮正引发各领域的颠覆性变革,在学术研究这一知识生产的前沿阵地,其影响尤为显著。文献检索作为科研工作的基石,在AI技术的赋能下各大学术数据库已实现智能化升级。小编特别策划"AI科研导航"系列专题,…

作者头像 李华
网站建设 2026/8/30 3:51:57

Ring-1T开放下载:万亿参数AI模型解锁深度推理能力

近日,人工智能领域再添重磅突破——万亿参数规模的深度思考模型Ring-1T正式开放下载。这款由Bailing团队开发的开源大语言模型,凭借其在数学竞赛、代码生成和逻辑推理等复杂任务上的卓越表现,有望为科研机构和开发者社区提供强大的AI推理工具…

作者头像 李华
网站建设 2026/8/28 7:05:28

实时级半实物仿真测试平台 ETest_RT

1)产品简介ETest_RT是一款高实时性嵌入式系统半实物仿真测试平台(Embedded Real-Time Testing System Studio RT,简称:ETest_RT),仿真步长可达微秒级,适合于航空航天、武器装备、汽车电子、仪器仪表等领域的…

作者头像 李华