[英]Illegal instruction: 4 when running Django
我现在进行了Django v1.11.10的全新安装。 当我运行python manage.py runserver
一切正常。 但是,当我尝试连接到Postgres数据库时,我安装了软件包pip install psycopg2
,修改了DATABASES
varibale,并且在运行runserver
命令后,它失败并出现Illegal instruction
错误:
Performing system checks...
System check identified no issues (0 silenced).
Illegal instruction: 4
它是什么? 如何获取日志错误? 我使用Mac OS 10.11.6,PostgresApp(已在v9和v10服务器上尝试过以检查错误源)。 Python 3.6.4(通过virtualenv)。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydb',
'USER': 'sirjay',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
如果我将NAME
或USER
设置为不正确,或者即使我关闭Postgres.app服务器,则错误也相同。 就像Django没有看到Postgres。 但是使用phpPgAdmin
我可以连接到Postgres服务器。
psycopg2
部分用C编写,需要编译。 当您通过pip install
软件包时,通常会有一个预编译的二进制文件可供下载。
出于某种原因,预编译的psycopg2
模块包含您的CPU无法识别的指令(可能是因为您的处理器太旧了)。 您可以通过自己编译模块来解决此问题,这将确保代码在您的CPU上正常工作:
$ pip install --no-binary psycopg2 psycopg2
--no-binary psycopg2
是一个单独的选项,因此您必须两次指定软件包名称。 您也可以将其包括在您的requirements.txt
中:
psycopg2==a.b.c --no-binary psycopg2
Blender的答案和另一个问题指出了问题所在,但是在运行建议的命令时,出现以下错误:
Error: pg_config executable not found. pg_config is required to build psycopg2 from source. Please add the directory containing pg_config to the $PATH or specify the full executable path with the option: python setup.py build_ext --pg-config /path/to/pg_config build ... or with the pg_config option in 'setup.cfg'.
由于我对设置,配置等一无所知,因此花了一些时间才知道该怎么做。 在这种情况下,如果其他人面临相同的问题:
pip uninstall psycopg2
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin/
然后
pip install --no-binary :all: psycopg2
这为我解决了问题。
使用pip install --no-binary psycopg2 psycopg2
重新pip install --no-binary psycopg2 psycopg2
解决了问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.