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

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,可能和你用的pyenv或brewPython 冲突,建议优先用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-virtualenv或dnf 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 用:
myenv\Scripts\activate.bat;PowerShell 默认禁用脚本,要先运行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,再用:myenv\Scripts\Activate.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/python或C:\Python39\python.exe这类绝对路径运行脚本,应统一用python(激活后自动指向虚拟环境里的) - 检查当前解释器路径:
which python(macOS/Linux)或where python(Windows cmd) - IDE(如 VS Code、PyCharm)需要手动选解释器:指向
myenv/bin/python(macOS/Linux)或myenv\Scripts\python.exe(Windows) - 运行脚本时加
-v看详细导入路径:python -v -c "import requests",能清楚看到它从哪找的site-packages
which python,十次有八次踩坑。











