【发布时间】:2015-10-26 14:43:44
【问题描述】:
尝试开始使用 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 我得到:
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还是postgresql 安装程序来安装postgresql 客户端库?
标签: python macos postgresql psycopg2