繁体   English   中英

非法指令:运行Django时为4

[英]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': '',
    }
}

如果我将NAMEUSER设置为不正确,或者即使我关闭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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM