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。也许他看不到这个图书馆?
答案 0 :(得分:2)
psycopg2
python模块包含一个用C编写的扩展名。无法加载该扩展名,因为它所依赖的另一个C库缺失。
检查您是否仍安装了PostgreSQL客户端库,psycopg2
可以找到它。
请注意,如果在WSGI服务器中运行Django,则需要在WSGI服务器启动之前设置LD_LIBRARY_PATH
环境变量 。或者,使用psycopg2
重新编译LD_RUN_PATH=/usr/local/pgsql/lib
扩展名,以便在链接时“硬编码”PostgreSQL客户端库的路径,从而无需设置LD_LIBRARY_PATH
。
最后一种方法是将/usr/local/pgsql/lib
路径添加到/etc/ld.so.conf
,请参阅ld.so(8)
manpage。