You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac下执行virtualenv创建虚拟环境报无此文件或目录错误如何解决

故障根因

报错核心是/usr/local/bin/路径下的旧virtualenv启动脚本,硬编码的解释器路径指向了已被移除的/usr/bin/python:MacOS 10.15及以上版本默认删除了系统自带的Python 2,该路径下默认无Python可执行文件,旧版virtualenv安装时绑定了Python 2路径,就会触发bad interpreter报错。
执行pip3 install virtualenv提示依赖已满足,是因为Python3环境的第三方包目录里已经安装了virtualenv,但路径优先级更高的旧版(绑定Python2的)可执行脚本没有被替换,终端优先读取到了损坏的旧脚本。

排查步骤
  • 执行which -a virtualenv查看所有virtualenv可执行文件的路径,排在首位的一般就是/usr/local/bin/virtualenv这个损坏的旧脚本
  • 执行which python3确认当前系统可用的Python3路径:M系列芯片Mac通过Homebrew安装的Python3一般在/opt/homebrew/bin/python3,Intel芯片Mac的Homebrew路径为/usr/local/bin/python3,系统自带Python3路径为/usr/bin/python3
  • 执行pip3 show virtualenv查看Python3环境下virtualenv包的实际安装位置,确认包本身安装正常
修复方案

方案1:删除损坏脚本后强制重装(推荐,一劳永逸)

  • 先移除损坏的旧脚本:sudo rm /usr/local/bin/virtualenv
  • 强制重装virtualenv,自动生成绑定Python3的正确可执行文件:pip3 install --force-reinstall virtualenv
  • 清空bash命令缓存避免读取旧路径:hash -r
  • 验证修复:执行virtualenv --version正常返回版本号后,即可正常执行virtualenv 虚拟环境名创建新环境,原有可正常运行的旧项目虚拟环境不受任何影响。

方案2:修改旧脚本的解释器路径(快速修复,无需重装)

  • 编辑损坏的virtualenv脚本:sudo vi /usr/local/bin/virtualenv
  • 将脚本第一行的shebang配置从#!/usr/bin/python修改为你实际查询到的Python3绝对路径,比如系统自带Python3就改为#!/usr/bin/python3
  • 保存退出后给脚本添加执行权限:sudo chmod +x /usr/local/bin/virtualenv
  • 执行hash -r清空命令缓存即可正常使用。

方案3:绕开损坏脚本直接调用Python模块

如果不想修改系统路径下的文件,创建虚拟环境时直接通过Python模块方式调用virtualenv即可,命令为:
python3 -m virtualenv 你的虚拟环境名称
该方式会直接调用当前Python3环境中安装的virtualenv包,完全跳过/usr/local/bin下的损坏脚本,对现有环境无任何改动。

注意:所有修复操作都不会影响之前已经创建好、可以正常运行的virtualenv虚拟环境,旧环境的依赖和配置都是独立存储的,不会被改动。

内容的提问来源于stack exchange,提问作者Md. Parvez Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:27:34