Python ImportError:无法加载指定的对象-psycopg2

Python ImportError:无法加载指定的对象-psycopg2,python,python-2.7,psycopg2,postgresql-9.2,Python,Python 2.7,Psycopg2,Postgresql 9.2,OpenBSD,PostgreSQL9.2,Python 2.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

OpenBSD,PostgreSQL9.2,Python 2.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
Python 2.7.3(默认,2012年8月3日05:33:56)
openbsd5上的[GCC 4.2.1 20070719]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入psycopg2
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/site packages/psycopg2/_init__.py”,第67行,在
从psycopg2.\u psycopg导入二进制、数字、字符串、日期时间、ROWID
ImportError:无法加载指定的对象

已编译并安装psycopg2。我在/site packages/psycopg2文件夹中看到了_psycopg.so。可能他看不到这个库?

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

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

请注意,如果在WSGI服务器中运行Django,则需要在WSGI服务器启动之前设置
LD_LIBRARY_PATH
环境变量。或者,使用
LD_RUN_PATH=/usr/local/pgsql/lib
重新编译
psycopg2
扩展,在链接时将路径“硬编码”到PostgreSQL客户机库,无需设置
LD_library_PATH


最后一种方法是将
/usr/local/pgsql/lib
路径添加到
/etc/ld.so.conf
,请参阅。

您确定这是可从psycopg2导入的:二进制、数字、字符串、日期时间、ROWID?什么是ROWID?@mikedklerk:psycopg2库的一部分;回溯的最后一行是试图导入C扩展的python模块。这个问题的原因是这个库不可导入,它是指向库的指针(LD_library_PATH=/usr/local/pgsql/lib)。Python命令行现在导入psycopg2并设置连接。Django仍在写入相同的错误。@dima.h:是否使用WSGI服务器运行Django?LD_run_路径没有帮助。Django环境中是否有指向库的库路径?@dima.h:为您添加的最后一个选项。ldconfig OpenBSD与Linux软件包不同。它起作用了。(谢谢)