私はこれに似たpythonプログラムを作成中です 。とにかく私がやりたいことは、ユーザーが自分のプログラムを変更できるようにすることですが、これがどのように機能するかを理解するのに助けが必要です. 私はソースコードに目を通しましたが、誰かが私に非常に役立つことを指摘できたとしても、これがどこで発生するのか混乱しています. プログラムがサンドボックス化されないことはわかっていますが、現時点では心配していません。あなたが私をどんな方向にでも向けることができれば、それは素晴らしいことです! ありがとうございました!
2 に答える
私の他の答えは、あなたが実際に尋ねたことを扱っています。しかし、それはあなたが本当に知りたかったことではないと思います。
別の Python インタープリターで、パス名を取得した Python スクリプトを実行する方法を知りたいだけですよね?
conf.py
pybotwar コードからそれを理解することは可能ですが、ファイル、構成可能な追加フラグなど、理解を妨げる余分なものがたくさんあります。
しかし、答えは簡単です。他のプログラムsubprocess
を実行する場合と同じように、モジュールを使用してください。この場合、Python インタープリターは実行可能ファイル (通常は、使用しているのと同じ Python インタープリター) であり、引数として実行するスクリプトです。例えば:sys.executable
script_output = subprocess.check_output([sys.executable, script_path])
subprocess
ドキュメントでは、さまざまなオプションがすべて非常にうまく説明されています。
「ロボット プログラム」はプレーン テキスト ファイルとして保存されます。
editor.pyには汎用のテキスト エディタがあります。qt4view.pyの Qt4 ビューなど、特定のビューでロボットを開くと、テキスト エディターがインスタンス化され、ロボットのファイルが渡されます。繰り返しますが、ロボットのファイルが Python スクリプトであるという事実は重要ではありません。テキストファイルとして編集するだけです。
一方、バトル コードは、テキスト エディターがテキスト ファイルとして開く Python コードと同じロボット ファイルを開きます。このコードはgame.pyで確認できます。モジュールを使用してsubprocess
Python を実行し、ロボット ファイルを引数として渡します。