0

私はこれに似たpythonプログラムを作成中です 。とにかく私がやりたいことは、ユーザーが自分のプログラムを変更できるようにすることですが、これがどのように機能するかを理解するのに助けが必要です. 私はソースコードに目を通しましたが、誰かが私に非常に役立つことを指摘できたとしても、これがどこで発生するのか混乱しています. プログラムがサンドボックス化されないことはわかっていますが、現時点では心配していません。あなたが私をどんな方向にでも向けることができれば、それは素晴らしいことです! ありがとうございました!

4

2 に答える 2

0

私の他の答えは、あなたが実際に尋ねたことを扱っています。しかし、それはあなたが本当に知りたかったことではないと思います。

別の Python インタープリターで、パス名を取得した Python スクリプトを実行する方法を知りたいだけですよね?

conf.pypybotwar コードからそれを理解することは可能ですが、ファイル、構成可能な追加フラグなど、理解を妨げる余分なものがたくさんあります。

しかし、答えは簡単です。他のプログラムsubprocessを実行する場合と同じように、モジュールを使用してください。この場合、Python インタープリターは実行可能ファイル (通常は、使用しているのと同じ Python インタープリター) であり、引数として実行するスクリプトです。例えば:sys.executable

script_output = subprocess.check_output([sys.executable, script_path])

subprocessドキュメントでは、さまざまなオプションがすべて非常にうまく説明されています。

于 2013-09-11T23:11:05.737 に答える
0

「ロボット プログラム」はプレーン テキスト ファイルとして保存されます。

editor.pyには汎用のテキスト エディタがあります。qt4view.pyの Qt4 ビューなど、特定のビューでロボットを開くと、テキスト エディターがインスタンス化され、ロボットのファイルが渡されます。繰り返しますが、ロボットのファイルが Python スクリプトであるという事実は重要ではありません。テキストファイルとして編集するだけです。

一方、バトル コードは、テキスト エディターがテキスト ファイルとして開く Python コードと同じロボット ファイルを開きます。このコードはgame.pyで確認できます。モジュールを使用してsubprocessPython を実行し、ロボット ファイルを引数として渡します。

于 2013-09-11T22:03:51.133 に答える