いくつかの一般的なコードを共有する一連のplpythonu関数を書いています。メンテナンスを容易にするために、共有コードを別のモジュールにパッケージ化したいと思います。 plpythonuからカスタムモジュールを呼び出す簡単な方法はありますか?
Pythonのパス内の場所へのアクセスは保証できないため、パス上のフォルダーにドロップしても機能しない可能性があります。
これらはすべてPostgreSQL拡張機能の一部であるため、理想的にはヘルパーPythonモジュールを他の拡張機能ファイルと一緒にインストールします。
システムのPYTHONPATH
にインストールできることを保証できない場合は、 check_updates-1.0.1 で行われた処理に沿って何かを実行できる可能性があります。
Makefile では、Perlのpg_config
ディレクティブの代わりにuse lib
の出力に基づく置換があります。あなたはこのような同様のことをすることができます:
import sys
sys.path.append("<LIBDIR>/myextension")
モジュールのインストールディレクトリが関数のPYTHONPATH
にあることを確認するために、拡張機能のMakefileにあります。
このStackOverflow質問で参照されているように、インポートをキャッシュすることもできます: plpythonのインポートステートメントはどのように処理されますか 。
悲しいことに、それは「簡単」ではありません。そのようなことを簡単にするために、plpythonuの将来の改善を待つ必要があります。
それがあなたの質問への答えに役立つことを願っています。 =)