CCPS(スクリプトインターフェイスとしてjythonを使用するプログラム)のために、Jythonで何かをコーディングする必要があります。ただし、プログラムを再起動しない限り、エディターでサブモジュールを変更しても、Jythonはサブモジュールを更新しません(起動時間は法外です)。SOのテストと調整は比較的遅いです。
私はグーグルで検索し、サブモジュールをインポートまたはリロードする必要があることを示す投稿を見つけました。したがって、基本的な概要は次のとおりです。
def loader(module, part=None):
if not module in sys.modules :
if part == None:
exec("import "+module)
else:
exec("from %s import %s" % (module, part))
else :
exec("reload "+module)
ただし、これには問題があります。モジュールはローカルに読み込まれます。つまり、loader()
関数内ではモジュールにアクセスできますが、メインコードではアクセスできません。
2つの質問:
各サブモジュールの変更後にJythonを再起動せずに、Jythonのサブモジュールで何かをテストする正しい方法は何ですか?グローバル名前空間にインポートできるようにグローバルを動的に生成する方法はありますか?
(例えばexec("global %(mod)s = %(mod)s" % ({'mod':module}))