venv 是 Python 3.3+ 自带的内置虚拟环境工具,无需额外安装,核心作用是为不同 Python 项目创建隔离的运行环境,避免依赖包版本冲突。下面详细讲解它的创建、查看、激活、退出等核心操作,同时覆盖不同系统的差异。
一、venv 核心使用教程
(一)前提准备
确保你的系统已安装 Python 3.3+(可通过 python3 --version 或 python --version 验证)。部分 Linux 系统(如 Ubuntu)默认未安装 venv 模块,需先执行以下命令安装依赖:
# Ubuntu/Debian 系列 sudo apt update && sudo apt install -y python3-venv
(二)核心操作详解
-
创建虚拟环境 (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、TensorRT 等),避免重复下载大型依赖包,节省磁盘空间和时间。推荐 --system-site-packages:为了全能:能直接使用 TensorRT、OpenCV(系统版,Jetson 设备系统预安装的 OpenCV 支持 CUDA 加速)、Jetson.GPIO 等预装库。
一句话总结:如果你只跑纯 PyTorch 模型,纯净环境是可行的;但如果你要开发典型的 Jetson 机器人应用(结合 TensorRT 加速、GPIO 控制、CSI 摄像头等),
--system-site-packages依然是必须要选的。命令格式与示例:
# 带系统包继承的创建命令 python3 -m venv --system-site-packages 环境名 # 示例:创建继承系统全局包的虚拟环境(命名建议带标识,方便区分) python3 -m venv --system-site-packages my_project_venv_with_global关键注意事项:
- 继承时机:仅在虚拟环境创建时同步系统全局包,后续在系统全局安装的新包,不会自动同步到已创建的虚拟环境(需重新创建或手动在虚拟环境中安装);
- 版本优先级:虚拟环境中通过 pip 安装的包,优先级高于继承的系统全局包(即若虚拟环境和系统全局安装了同一包的不同版本,会优先使用虚拟环境中的版本);
- 兼容性风险:若系统全局包版本与项目需求冲突,可能导致项目报错,此时建议使用基础隔离模式创建虚拟环境,单独安装适配版本的依赖。

