CCPS(jythonをスクリプトインターフェイスとして使用するプログラマ)のために、Jythonで何かをコーディングする必要があります。しかし、私がプログラムを再起動しない限り、Jythonはエディタでサブモジュールを変更してもサブモジュールを更新しません(起動時間が非常に長い)。 SOのテストと調整は比較的遅いです。動的にJythonをインポートまたはリロードする
私はグーグルで、サブモジュールをインポートまたはリロードする必要があることを示す投稿を見つけました。基本的なアウトラインは、このようにある:私はこれで問題があるしかし
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()
関数内のモジュールにアクセスすることはできませんが、意味、ローカルにロードされます。
つの質問:
各サブモジュールの変更後のJythonを再起動せずにJythonの中のサブモジュールで何かをテストするための正しい方法は何ですか? グローバル名前空間にインポートできるように、グローバルを動的に生成する方法はありますか?
(例えばexec("global %(mod)s = %(mod)s" % ({'mod':module}))
が、私はそれを見つけることができなかった、そしてここでさらに詳細に説明する:のhttp:/ /code.activestate.com/recipes/81731-reloading-all-modules/また何らかの理由で他に誰も私にこの1年間助けてくれる人はいなかったでしょう... – ted
私はJython 2.5.2を試してみましたが、 'sys.modules.clear()'はエラーにはなりませんが、クラスはリロードされません。 –