virtualenv命令未找到需检查安装路径和PATH,优先用python -m virtualenv --version验证;指定Python版本失效时应确认可执行文件存在并使用绝对路径;激活后pip安装仍影响全局需排查是否启用--system-site-packages或未正确激活环境。

virtualenv 命令执行失败:找不到命令?
说明:你刚装完 virtualenv,但在终端输 virtualenv --version 却提示 command not found,大概率是没装对或没进 PATH。
实操建议:
立即学习“Python免费学习笔记(深入)”;
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 优先用 pip 安装:运行
pip install virtualenv(不是pip3,除非你系统默认 pip 指向 Python 2) - 验证安装路径:执行
python -m virtualenv --version,这是最稳妥的调用方式,绕过 shell 查找 - 如果仍报错,检查是否误装到用户 site-packages 但未启用用户安装路径——可加
--user参数重试:pip install --user virtualenv - Mac M1/M2 用户注意:若用 arm64 Python 安装后仍不可用,可能是 pip 缓存了 x86 轮子,先运行
pip cache purge再重装
创建环境时指定 Python 版本不生效?
说明:你执行 virtualenv -p python3.9 myenv,但激活后 python --version 显示的是 3.8 或系统默认版本。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 确认目标 Python 可执行文件真实存在:运行
which python3.9或pyenv which python3.9(如果你用 pyenv) - Windows 用户注意:
-p后必须写完整路径,比如-p C:\Python39\python.exe,不能只写python3.9 - 某些 Linux 发行版(如 Ubuntu)把
python3.9放在/usr/bin/下但没加可执行权限,需手动chmod +x /usr/bin/python3.9 - 更可靠的方式是用绝对路径创建:
virtualenv -p /opt/homebrew/bin/python3.9 myenv(macOS Homebrew 示例)
激活后 pip install 仍写入全局 site-packages?
说明:你 source 了 myenv/bin/activate(Linux/macOS)或 myenv\Scripts\activate.bat(Windows),但装完包后,在其他环境也能 import 到。
实操建议:
立即学习“Python免费学习笔记(深入)”;
- 立刻检查当前 Python 解释器路径:
which python(macOS/Linux)或where python(Windows),输出必须指向虚拟环境内的bin/python或Scripts/python.exe - 常见陷阱:在已激活的 zsh/fish 中又开了新终端窗口,新窗口并未自动激活——每次新开终端都要重新 source
- 确认 pip 是否被 alias 覆盖:运行
type pip,如果显示pip is aliased to ...,临时绕过 alias 用\pip install requests - 极少数情况:虚拟环境创建时用了
--system-site-packages,导致继承全局包,重建时去掉该参数即可
requirements.txt 导出时漏掉依赖或版本不准?
说明:你在虚拟环境中运行 pip freeze > requirements.txt,结果部署时 pip install -r requirements.txt 报错说某个包不存在,或版本冲突。
实操建议:
立即学习“Python免费学习笔记(深入)”;
-
pip freeze会导出所有已安装包(包括间接依赖),但有些包(如setuptools、wheel)不该进生产依赖——建议改用pip list --outdated --format=freeze | grep -v '^\-e' > requirements.in,再配合pip-compile生成精确锁文件 - 确保导出前没手动
pip install --user过任何包,否则它们也会混进freeze结果里 - Windows 用户注意:
pip freeze输出含pkg-resources==0.0.0是正常现象,但部署到 Linux 时要删掉这一行,否则 pip 会报错 - 如果项目用到了本地开发包(
pip install -e .),freeze会输出-e git+https://...这类行,CI/CD 环境可能无法解析,应提前替换为固定 commit 的 URL 或用pip-tools处理
which python 和 python -c "import sys; print(sys.path)" 看一眼,比反复重装快得多。

















