"Illegal instruction: 4" 尝试在 OS X 中使用 virtualenv 启动 Python

"Illegal instruction: 4" when trying to start Python with virtualenv in OS X

我已经在 virtualenv 环境中使用 Python 2.7.10 几个月了。

昨天,激活环境很顺利,但今天我在尝试从终端启动 Python 时突然遇到这个神秘错误:

Illegal instruction: 4

我没有对我的环境进行任何更改 (AFAIK),所以我很难理解这个错误是什么以及导致它的原因。

Python 在 virtualenv 环境之外工作正常。当 运行 通过 /usr/local/bin 时没有问题。

这个问题我遇到过很多次了。虽然我不能确定实际问题是什么,但我相信这基本上意味着 Python 的 virtualenv 部分中的某些文件已损坏。

我将我的虚拟环境保存在同步的 Dropbox 文件夹中,因此这可能是导致问题的主要原因。

从备份存档恢复虚拟环境对我有用。或者干脆重新安装一个相同的虚拟环境。

  • 首先,尝试通过cd <path/to/old_env>source /bin/activate激活故障环境。
  • 如果成功激活,cd 到驱动器上的可访问位置并 运行 pip freeze > requirements.txt 导出当前安装的 Python 模块列表。
  • 删除旧环境。
  • 通过virtualenv <path/new_env>
  • 安装计算机上最新版本Python 2 的新虚拟环境
  • 或者,如果您想使用特定的 Python 版本,首先确保您的驱动器上有它,然后再执行 virtualenv -p <path>。假设您已经下载了 Python 版本的 Homebrew,例如:virtualenv -p /usr/local/bin/python2.6 <path/new_env>
  • 通过cd <path/new_env>激活虚拟环境,然后source /bin/activate
  • 假设您通过先前对文本文件所在的文件夹执行 pip freeze > requirements.txtcd 并执行 pip install -r requirements.txt.[=39= 来保留要重新安装的模块列表]
  • 否则,请手动重新安装 pip 模块。

我遇到了同样的问题,通过卸载 psycopg2 并安装旧版本找到了解决方案。据我了解,我的 comp 在新版本中不支持某些命令