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が見つかることを確認してください。

Django を WSGI サーバーで実行する場合は、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 に答える