6

クエリを実行しているデータベースの PostgreSQL 内に PL/Python v2.x 言語をインストールしようとしました。

CREATE EXTENSION plpythonu;

(これはhttp://www.postgresql.org/docs/9.3/static/plpython.htmlから取得しました)

しかし、私はこのエラーが発生しています:

ERRO:  não pôde acessar arquivo "$libdir/plpython2": No such file or directory
********** Error **********
ERRO: não pôde acessar arquivo "$libdir/plpython2": No such file or directory
SQL state: 58P01

これを自動でインストールする方法は?多くのコンピュータにインストールする必要があります。

4

2 に答える 2

12

LoadLibrary通常、このエラー メッセージは、Windows API呼び出しによって生成される誤解を招くものです。それが実際に意味することは、次のようなものです。

読み込み中のエラー: 依存関係の DLLがplpython2.dll見つかりませんpython27.dllPATH

plpython2.dllしかし代わりに、Windows はロードできなかったのは自分自身であるかのように振る舞います。

これが問題かどうかはlib、PostgreSQL インストールのディレクトリでplpython2.dll. そこにあるのにこのエラーが発生する場合は、Python ランタイムが不足しています。plpython2.dllまったくない場合は、PostgreSQL のインストールに plpython2 がありません。これは、私がパッケージング チームで提起しているものです

あるのに読み込まれない場合plpython2.dllは、PostgreSQL のバージョンに一致する Python ランタイムをインストールする必要があります。PostgreSQL のコンパイルに使用されたものと同じ Python メジャー バージョンである必要があります。たとえば、PostgreSQL のコンパイルに Python 2.7 が使用された場合、Python 2.6 では plpython を実行できません。

必要なランタイムのインストールがインストーラーによって自動化されていればいいのですが、現時点ではそうではありません。また、適切に文書化されていません。これについては、パッケージング チームに相談します。インストールする正しいランタイムは、インストール ディレクトリ内に文書化されています。このディレクトリには、[スタート] メニューの[PostgresSQL 9.3] -> [ドキュメント] -> [インストール ノートdoc\installation-notes.html]からもアクセスできます。 .

「インストール ノート」ファイルにこの情報がない古いリリースの場合、必要な Python のバージョンがわからない場合は、depends.exe(依存関係ウォーカー)を使用して、どの Python DLL にリンクされているかを確認できます。同じアーキテクチャの Python も必要です。64 ビットの PostgreSQL をインストールする場合は、64 ビットの Python などが必要です。

PostgreSQL 9.3 パッケージには Python 27 が必要です。したがって、 http://python.org/から Python 2.7 をダウンロードしてください (ActiveState ではなく、必ずしも互換性があるとは限りません)。インストーラーによってPython が に追加されていることを確認しPATHます (インストーラーを実行するときのオプションです)。その後、PostgreSQL を再起動してから再試行してください。

次の方法で Python のインストールを自動化できます。

start /wait msiexec /i python-2.7.3.amd64.msi /qb /passive TARGETDIR=%SystemDrive%\Python27_x64 ALLUSERS=1

python-2.7.3.amd64.msi、インストールした Python バイナリのファイル名で、64 ビット バージョンを にインストールしていますC:\Python27_x64。必要に応じて調整します。

于 2014-06-14T09:18:48.613 に答える
0

私の場合、Python 3.3 をインストールするだけで機能しました。以前は 2.7 と 3.4 を持っていましたが、それらのどれも望んでいたものではありませんでした。

Windows 7 で PostgreSQL 9.4 x64 を実行しています

于 2015-11-01T22:45:00.027 に答える