web-dev-qa-db-ja.com

plpythonuのカスタムモジュール

いくつかの一般的なコードを共有する一連のplpythonu関数を書いています。メンテナンスを容易にするために、共有コードを別のモジュールにパッケージ化したいと思います。 plpythonuからカスタムモジュールを呼び出す簡単な方法はありますか?

Pythonのパス内の場所へのアクセスは保証できないため、パス上のフォルダーにドロップしても機能しない可能性があります。

これらはすべてPostgreSQL拡張機能の一部であるため、理想的にはヘルパーPythonモジュールを他の拡張機能ファイルと一緒にインストールします。

3
spencerrecneps

システムのPYTHONPATHにインストールできることを保証できない場合は、 check_updates-1.0.1 で行われた処理に沿って何かを実行できる可能性があります。

Makefile では、Perlのpg_configディレクティブの代わりにuse libの出力に基づく置換があります。あなたはこのような同様のことをすることができます:

import sys
sys.path.append("<LIBDIR>/myextension")

モジュールのインストールディレクトリが関数のPYTHONPATHにあることを確認するために、拡張機能のMakefileにあります。

このStackOverflow質問で参照されているように、インポートをキャッシュすることもできます: plpythonのインポートステートメントはどのように処理されますか

悲しいことに、それは「簡単」ではありません。そのようなことを簡単にするために、plpythonuの将来の改善を待つ必要があります。

それがあなたの質問への答えに役立つことを願っています。 =)

1
Kassandry