Django 随笔:illegal instruction 4 错误

问题来源


django 1.11 项目使用 postgresql 数据库,使用以下命令安装 psycopg2 :

pip install psycopg2

问题描述


运行时出现下面的警告信息:

/Users/apple/.virtualenvs/new_ossc_env/lib/python2.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: .

并报以下错误,程序终止:

Illegal instruction: 4

解决方案


第一条 warning 信息

第一条信息的意思从 psycopg2 的 2.8 版本(当前版本是 2.7.4 )开始需要使用 pip install psycopg2-binary 命令安装 psycopg2 。

现在两个命令安装的版本都是 2.7.4 ,这个问题可以保留,也可以使用:

pip uninstall psycopg2 

卸载 psycopg2 , 并使用

pip install psycopg2-binary 

进行安装即可。

第二条 程序终止错误

错误解释

illegal instruction,即 SIGILL , 是 POSIX 标准中提供的一类错误。 从名字上看,SIGILL 是启动的某个进程中的某一句不能被 CPU 识别成正确的指令。 此类错误是由操作系统发送给进程的,在进程试图执行一些形式错误、未知或者特权指令时操作系统会使用 SIGILL 信号终止程序。 SIGILL 对应的常数是 4 。维基百科定义见 https://en.wikipedia.org/wiki/Signal_(IPC)#SIGILL。

解决方案

使用:

pip uninstall psycopg2 

卸载 psycopg2 , 并使用

pip install psycopg2==2.7.1

安装 2.7.1 版本即可。

到这里,问题解决掉了,但是产生这个问题的根本原因尚不清楚。

你可能感兴趣的:(Django 随笔:illegal instruction 4 错误)