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 pythonwhich 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) 消失;
  • pythonpip 恢复为系统默认版本;
  • 所有 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+PPython: Select Interpreter → 选择 ./venv/bin/python

✅ 六、最佳实践小贴士

  • 每个项目一个 venv:绝不共用,避免依赖污染;
  • .venv + .gitignore:将 venv/.venv/ 加入 .gitignore(不提交二进制);
  • 命名统一:团队内约定用 venv,提升协作效率;
  • 配合 pyproject.tomlrequirements.txt:让环境可完全复现。

需要我帮你:

  • ✅ 自动生成一个带 venv 初始化、依赖安装、Git 忽略配置的项目模板脚本
  • ✅ 写一个 activate.sh / deactivate.sh 便捷别名?
  • ✅ 教你如何让终端 自动激活项目 venv(进入目录即 source venv/bin/activate)?

欢迎随时告诉我你的具体场景 👇

posted @ 2026-02-03 10:00  tros  阅读(38)  评论(0)    收藏  举报