[英]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.