[英]psycopg2 can't find symbol _PQbackendPID
嘗試開始使用django,由於某種原因,psycopg2找不到我的postgres實例。 這是錯誤消息:
(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
訪問數據庫ps -e | grep postgres
我得到的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的。
對於其他有類似問題的人,我通過用brew rmtree
刪除了所有版本的python和postgres來解決此問題。 我還必須刪除先前安裝在/ Library / Frameworks目錄中的python安裝程序,清除.bash-profile中PATH中的冗余,然后重新brew install
所有內容。 另外, brew doctor
可以解決任何符號鏈接問題。 但是,並非100%能夠完全解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.