2011-12-14 17 views
1

私はボットを制御する遺伝子発現ツリープログラムを持っています。私はGP.pyとMyBot.pyを持っています。私はGP.pyで作成したオブジェクトがpythonインスタンス間でオブジェクトを渡す方法

GP.pyが

が、私は木の数百を持っているos.system()コマンドを経由してMyBot.pyを開始しているMyBot.pyアクセスができるようにする必要がありますGP.pyファイル内のオブジェクトとMyBot.pyはそれらを評価する必要があります。

MyBot.pyの新しいインスタンスが何千回も実行されるため、2つのファイルを1つの.pyファイルに結合することはできませんが、GP.pyは各ツリーでMyBot.pyの適合度を評価する必要があります。

インポートGP.pyを使用してメソッドとクラス定義をインポートする方法を知っていますが、Treeクラスオブジェクトの特定のインスタンスが必要です このツリーを最初のインスタンスから2番目のインスタンスに送信する方法はありますか?

+0

os.system()を使用する特別な理由はありますか?私の最初の選択はスレッドでMyBotを実行することです。 – yilmazhuseyin

答えて

2

あなたはpickleモジュールでオブジェクトをシリアル化可能性(または多分JSON?)

あなたが本当にos.systemに固執したい場合は、ファイルに漬けオブジェクトを書き込むMyBot.py持つことができ、そのMyBot.pyが返ったらGP.pyが読むことができます。

サブプロセスモジュールを代わりに使用する場合は、MyBot.pyにpickledオブジェクトをstdoutに書き込ませ、GP.pyはそのオブジェクトをパイプで読み取らせることができます。

マルチプロセッシングモジュールを使用する場合は、MyBotプロセスを生成して、Queueインスタンスを介してデータを渡すことができます。

0

このようなプロセス間オブジェクトレベル通信に使用できるORB相互作用フレームワークVersile Python(AGPL)を開発しています。それは開発中ですが、あなたは一見を望むかもしれません。このrecipeは、GP.pyとMyBot.pyの間でパイプを使用してリモートオブジェクトにアクセスする方法を示しています。 native pythonオブジェクトとのリンクを使用して、Pythonオブジェクトに直接アクセスしたり、カスタムexternal objectsと書くことができます。

関連する問題