0

OpenBSD、PostgreSQL9.2、python2.7 尝试从 python 命令行导入 psycopg2 模块:

Python 2.7.3 (default, Aug  3 2012, 05:33:56)
[GCC 4.2.1 20070719 ] on openbsd5
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 67, in <module>
    from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: Cannot load specified object

psycopg2 已编译并安装。我在 /site-packages/psycopg2 文件夹中看到了 _psycopg.so。也许他看不到这个图书馆?

4

1 回答 1

2

python 模块包含一个用 C 编写的psycopg2扩展。无法加载该扩展,因为缺少它所依赖的另一个 C 库。

检查您是否仍然安装了 PostgreSQL 客户端库,并且psycopg2可以找到它。

请注意,如果您在 WSGI 服务器中运行 Django,则需要在 WSGI 服务器启动之前LD_LIBRARY_PATH设置环境变量。或者,在链接时重新编译扩展以“硬编码”PostgreSQL 客户端库的路径,从而无需设置.psycopg2LD_RUN_PATH=/usr/local/pgsql/libLD_LIBRARY_PATH

最后的手段是添加/usr/local/pgsql/lib路径/etc/ld.so.conf,请参阅ld.so(8)手册页

于 2013-01-16T07:16:02.390 回答