2015-10-26 46 views
1

試圖開始使用django,由於某種原因,psycopg2沒有找到我的postgres實例。這裏的錯誤消息:psycopg2找不到符號_PQbackendPID

(env)Ryans-MacBook-Pro:crib_db nonzero$ python3 manage.py runserver 
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x36f1584> 
Traceback (most recent call last): 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 20, in <module> 
import psycopg2 as Database File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/psycopg2/__init__.py", line 50, in <module> 
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID 
ImportError: dlopen(/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _PQbackendPID 
    Referenced from: /Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/psycopg2/_psycopg.so 
    Expected in: dynamic lookup 


During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/utils/autoreload.py", line 229, in wrapper 
fn(*args, **kwargs) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run 
autoreload.raise_last_exception() 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/utils/autoreload.py", line 252, in raise_last_exception 
six.reraise(*_exception) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/utils/six.py", line 658, in reraise 
raise value.with_traceback(tb) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/utils/autoreload.py", line 229, in wrapper 
fn(*args, **kwargs) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/__init__.py", line 18, in setup 
apps.populate(settings.INSTALLED_APPS) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate 
app_config.import_models(all_models) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models 
self.models_module = import_module(models_module_name) 
    File "/Users/nonzero/Programming/Data_Wizard/env/lib/python3.4/importlib/__init__.py", line 109, in import_module 
return _bootstrap._gcd_import(name[level:], package, level) 
... 
... 
... 

我確信我可以通過在命令行PSQL,並使用ps -e | grep postgres我可以訪問我的數據庫:

1647 ??   0:00.31 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log 
1649 ??   0:00.01 postgres: checkpointer process  
1650 ??   0:00.30 postgres: writer process  
1651 ??   0:00.26 postgres: wal writer process  
1652 ??   0:00.24 postgres: autovacuum launcher process  
1653 ??   0:00.72 postgres: stats collector process 
75317 ttys001 0:00.00 grep postgres 

我也懷疑它可能有一些版本問題,但我使用psycopg2(2.6.1)和postgres(9.4.5)的當前版本。

我也遇到了錯誤,只是試圖在使用sqlalchemy的代碼中編寫簡單的查詢,所以我不認爲它的django特有。

+0

您使用'brew'或postgresql安裝程序來安裝postgresql客戶端庫嗎? –

+0

我正在使用brew。 – heliotrope

回答

1

對於任何其他有類似問題的人,我通過刪除所有版本的python和postgres與brew rmtree來解決此問題。我還必須刪除一個以前安裝的Python,最終放到/ Library/Frameworks目錄中,清除.bash配置文件中的冗餘,然後清除所有內容。另外,brew doctor可解決任何符號鏈接問題。然而,不是100%究竟解決了什麼問題。