Python 虚拟环境(venv)使用指南
·
什么是虚拟环境
Python 虚拟环境是一个独立的 Python 运行环境,拥有自己的 Python 解释器副本和独立的 site-packages 目录。每个虚拟环境之间互不干扰,适合在不同项目中使用不同版本的依赖包。
创建虚拟环境
# 在项目目录下创建名为 myenv 的虚拟环境
python3 -m venv myenv
# 指定 Python 版本(需要系统已安装对应版本)
python3.12 -m venv myenv
创建后的目录结构:
myenv/
├── bin/
│ ├── python -> /usr/bin/python3.12
│ ├── pip
│ └── activate
├── include/
├── lib/
│ └── python3.12/
│ └── site-packages/
└── pyvenv.cfg
pyvenv.cfg:记录虚拟环境的配置信息(Python 版本、系统 site-packages 是否包含等)bin/activate:激活脚本lib/python3.12/site-packages/:虚拟环境独立的包安装目录
激活虚拟环境
# Linux / macOS
source myenv/bin/activate
# 激活后终端提示符前会出现 (myenv) 标识
(myenv) user@host:~/project$
退出虚拟环境
deactivate
删除虚拟环境
rm -rf myenv/
常见问题
VSCode 终端自动激活虚拟环境
现象:在 VSCode 中打开项目后,终端自动显示 (myenv),即使没有手动执行过 source myenv/bin/activate。
原因:VSCode 的 Python 扩展会自动检测工作目录下的虚拟环境文件夹(如 venv、myenv、.venv 等),并在打开新终端时自动激活。这与是否运行 colcon 或其他命令无关。
解决方法(任选一种):
-
关闭自动激活:在 VSCode 设置中添加:
"python.terminal.activateEnvironment": false -
手动选择系统解释器:
Ctrl+Shift+P→Python: Select Interpreter→ 选择/usr/bin/python3。 -
删除不需要的虚拟环境(
myenv是创建虚拟环境时自己定的名字,实际使用时替换成你的虚拟环境文件夹名):rm -rf myenv/ -
忽略虚拟环境文件夹(避免被 VSCode 检测到):在
.vscode/settings.json中添加:"python.venvPath": "", "python.terminal.activateEnvironment": false
验证当前是否在虚拟环境中
# 方法 1:查看 VIRTUAL_ENV 环境变量
echo $VIRTUAL_ENV
# 方法 2:查看当前使用的 Python 路径
which python
如果输出包含虚拟环境路径(如 /home/lihao/chapt3/myenv),说明当前处于虚拟环境中。
更多推荐

所有评论(0)