Python virtualenv怎么用_virtualenv虚拟环境安装与激活方法

3次阅读

virtualenv未安装需用pip install –user virtualenv安装,python 3.3+推荐优先使用python -m venv;报EnsurepipError时应补装系统venv包或用–without-pip参数;激活必须用source(linux/macos)或对应脚本(windows),且ide需手动指定虚拟环境解释器路径。

Python virtualenv怎么用_virtualenv虚拟环境安装与激活方法

virtualenv 命令根本没装,command not found

直接运行 virtualenv 报错,说明它压根没装进系统。Python 3.3+ 自带 venv 模块,但 virtualenv 是第三方包,得手动装。

  • 用 pip 装:pip install virtualenv(推荐用用户级安装:pip install --user virtualenv,避免权限问题)
  • 装完检查:virtualenv --version,有输出就对了
  • 如果提示 pip 找不到,先确认 Python 是否在 $PATH 里,再试 python -m pip install --user virtualenv
  • Mac M1/M2 用户注意:用 pip 装的 virtualenv 默认调用系统 Python,可能和你用的 pyenvbrew Python 冲突,建议优先用 python -m venv

python -m venv 创建环境却报 EnsurepipError

这是常见于精简版 Python(比如某些 Linux 发行版自带的 python3-venv 包没装全,或 Windows 的“无 pip 版”Python)。

  • Linux(debian/ubuntu)补全命令:sudo apt install python3-venv
  • centos/RHEL:sudo yum install python3-virtualenvdnf install python3-virtualenv
  • Windows 用户如果从 python.org 下载安装包,务必勾选 “Add Python to PATH” 和 “Install pip”
  • 实在不行,绕过 pip 初始化:python -m venv --without-pip myenv,再进环境手动装 pip:curl https://bootstrap.pypa.io/get-pip.py | ./myenv/bin/python(Linux/macOS)

激活后 which python 还是指向系统 Python

说明环境没激活成功,或者 shell 类型不匹配。

  • Linux/macOS 激活命令是:source myenv/bin/activate(不能漏掉 source,直接运行 myenv/bin/activate 不生效)
  • Windows cmd 用:myenvScriptsactivate.bat;PowerShell 默认禁用脚本,要先运行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,再用:myenvScriptsActivate.ps1
  • 激活后提示符通常会变(如变成 (myenv) $),这是最直观的判断依据
  • Zsh 用户如果用了 oh-my-zsh,某些插件会干扰 activate,可临时关插件测试,或改用 python -m venv 后手动修改 myenv/bin/activate 中的 pydoc 调用方式

pip install 装的包在其他环境里看不见,但 python -c "import xxx" 却报 ModuleNotFoundError

不是包没装,是当前 Python 解释器根本没进对环境——要么没激活,要么用了绝对路径调用系统 Python。

立即学习Python免费学习笔记(深入)”;

  • 别用 /usr/bin/pythonC:Python39python.exe 这类绝对路径运行脚本,应统一用 python(激活后自动指向虚拟环境里的)
  • 检查当前解释器路径:which python(macOS/Linux)或 where python(Windows cmd)
  • IDE(如 VS Code、pycharm)需要手动选解释器:指向 myenv/bin/python(macOS/Linux)或 myenvScriptspython.exe(Windows)
  • 运行脚本时加 -v 看详细导入路径:python -v -c "import requests",能清楚看到它从哪找的 site-packages

实际用的时候,最容易被忽略的是 shell 类型和激活方式的严格对应,还有 IDE 解释器路径是否真的切过去了——光看终端提示符变没变,不验证 which python,十次有八次踩坑。

text=ZqhQzanResources