问题来源
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: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
并报以下错误,程序终止:
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 版本即可。
到这里,问题解决掉了,但是产生这个问题的根本原因尚不清楚。
网友评论