python创建虚拟环境,并激活或退出
在 Python 中,创建和管理虚拟环境(virtual environment) 是隔离项目依赖、避免版本冲突的最佳实践。Ubuntu(及其他 Linux/macOS 系统)原生支持,无需额外安装 virtualenv(Python 3.3+ 已内置 venv 模块)。
以下是 清晰、准确、适用于 Ubuntu 20.04–24.04+ 的完整操作指南(含命令、说明、常见问题):
✅ 一、创建虚拟环境(推荐方式)
✔ 方法1:使用内置 venv(官方标准,强烈推荐)
# 1. 确保已安装 python3-venv(Ubuntu 默认已装,如提示 command not found 可补装)
sudo apt update && sudo apt install -y python3-venv
# 2. 在你的项目目录中创建虚拟环境(例如命名为 'venv')
python3 -m venv venv
# ✅ 成功后,当前目录下会生成文件夹:./venv/
# 它包含独立的 Python 解释器、pip、site-packages 等
💡 命名建议:
- 推荐用
venv或.venv(隐藏)——多数编辑器/IDE(VS Code, PyCharm)自动识别;- 避免用
env(易与系统环境变量混淆)。
⚠ 方法2(不推荐):使用 virtualenv(需 pip 安装,已过时)
pip3 install --user virtualenv
virtualenv venv # 不再推荐,功能被 venv 完全覆盖
✅ 二、激活虚拟环境
▶️ Linux/macOS(Bash/Zsh 终端):
source venv/bin/activate
✅ 激活成功标志:
- 终端提示符前出现
(venv)(或你命名的环境名),例如:(venv) user@ubuntu:~/myproject$ which python和which pip指向./venv/bin/python,而非系统/usr/bin/python3
🔁 补充:若使用
zsh(Ubuntu 22.04+ 默认),同样用source venv/bin/activate——完全兼容。
❌ Windows(CMD/PowerShell)仅作参考(非本题重点):
venv\Scripts\activate.bat # CMD
venv\Scripts\Activate.ps1 # PowerShell(需先 Set-ExecutionPolicy RemoteSigned)
✅ 三、退出虚拟环境
deactivate
✅ 退出后:
- 提示符
(venv)消失; python和pip恢复为系统默认版本;- 所有
pip install安装的包仅保留在venv/内,不影响全局环境。
⚠️ 注意:
deactivate是 shell 函数,不是外部命令,因此不能在脚本中直接bash -c "deactivate"——它只对当前 shell 有效。
✅ 四、常用配套操作(实用技巧)
| 目标 | 命令 | 说明 |
|---|---|---|
| 查看已安装包 | pip list |
激活后执行,只显示该虚拟环境中的包 |
| 导出依赖列表 | pip freeze > requirements.txt |
生成可复现环境的依赖快照 |
| 从 requirements 安装 | pip install -r requirements.txt |
激活环境后运行,一键还原所有依赖 |
| 升级 pip(推荐首次激活后执行) | python -m pip install --upgrade pip |
避免旧版 pip 兼容性问题 |
| 删除虚拟环境 | rm -rf venv |
彻底清除(⚠️ 无回收站,谨慎执行) |
✅ 五、常见问题 & 解决
| 问题 | 原因 | 解决方案 |
|---|---|---|
Command 'python3 -m venv' not found |
python3-venv 未安装 |
sudo apt install python3-venv |
PermissionError: [Errno 13] Permission denied |
当前用户无写权限(如在 /usr/ 下创建) |
✅ 永远在你的家目录(如 ~/myproject/)中创建 venv |
激活后 python --version 仍是系统版本 |
未正确激活(或用了 . 而非 source) |
✅ 确认输入 source venv/bin/activate(不是 ./venv/bin/activate) |
| VS Code 中未识别 venv | 编辑器未自动检测或 Python 扩展未选对解释器 | 按 Ctrl+Shift+P → Python: Select Interpreter → 选择 ./venv/bin/python |
✅ 六、最佳实践小贴士
- ✅ 每个项目一个 venv:绝不共用,避免依赖污染;
- ✅
.venv+.gitignore:将venv/或.venv/加入.gitignore(不提交二进制); - ✅ 命名统一:团队内约定用
venv,提升协作效率; - ✅ 配合
pyproject.toml或requirements.txt:让环境可完全复现。
需要我帮你:
- ✅ 自动生成一个带
venv初始化、依赖安装、Git 忽略配置的项目模板脚本? - ✅ 写一个
activate.sh/deactivate.sh便捷别名? - ✅ 教你如何让终端 自动激活项目 venv(进入目录即
source venv/bin/activate)?
欢迎随时告诉我你的具体场景 👇
本文来自博客园,作者:tros,转载请注明原文链接:https://www.cnblogs.com/tros/p/19567611

浙公网安备 33010602011771号