簡體   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