2
    Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/Library/Python/2.6/site-packages/psycopg2/__init__.py", line 60, in <module>
   from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: dlopen(/Library/Python/2.6/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _PQbackendPID
 Referenced from: /Library/Python/2.6/site-packages/psycopg2/_psycopg.so
 Expected in: flat namespace
 in /Library/Python/2.6/site-packages/psycopg2/_psycopg.so

Psycopg2 以前工作正常,但现在我收到此错误。

非常感谢有关此问题的任何想法。


编辑:所以在每次设置我的 mac 时处理了这么多 psycopg2 错误之后,我决定改用运行 Ubuntu 的 VMWareFusion。

4

4 回答 4

4

您收到此错误是因为您的 64 位版本的 python 找不到 64 位 psycopg2。

您可以将您的 python 降级为在 32 位模式下运行,或者尝试获取 64 位 psycopg2。在Ben Kreeger 的博客上有更多关于这个话题的讨论。

于 2010-01-08T00:38:13.203 回答
1

通过强制 Apache 可执行文件 32 位执行解决了类似的问题

于 2010-07-12T11:44:32.610 回答
1

会不会是 postgres 安装被删除/更新了?该符号应该来自 libpq。

于 2009-10-26T07:34:42.153 回答
1

这对我来说也坏了,就我而言,这似乎不是 32 位与 64 位的问题:

decibel@workbook.1[6:55]~/src:85%file /opt/local/lib/postgresql83/libpq.dylib 
/opt/local/lib/postgresql83/libpq.dylib: Mach-O 64-bit dynamically linked shared library x86_64
decibel@workbook.1[6:56]~/src:86%file ~/.python-eggs/psycopg2-2.0.14-py2.6-macosx-10.6-universal.egg-tmp/psycopg2/_psycopg.so 
/Users/decibel/.python-eggs/psycopg2-2.0.14-py2.6-macosx-10.6-universal.egg-tmp/psycopg2/_psycopg.so: Mach-O universal binary with 3 architectures
/Users/decibel/.python-eggs/psycopg2-2.0.14-py2.6-macosx-10.6-universal.egg-tmp/psycopg2/_psycopg.so (for architecture i386):   Mach-O bundle i386
/Users/decibel/.python-eggs/psycopg2-2.0.14-py2.6-macosx-10.6-universal.egg-tmp/psycopg2/_psycopg.so (for architecture ppc7400):    Mach-O bundle ppc
/Users/decibel/.python-eggs/psycopg2-2.0.14-py2.6-macosx-10.6-universal.egg-tmp/psycopg2/_psycopg.so (for architecture x86_64): Mach-O 64-bit bundle x86_64
decibel@workbook.1[6:56]~/src:87%
于 2010-04-15T12:06:56.033 回答