GUIを作成しようとしています。GUI がアクティブなときに、別の Python スクリプトを実行する必要があります。(GUIはこの実行からのデータを処理することになっています)Tkinterを使用してGUIを作成したため、pythonターミナルで別のファイルを実行できません。
どうすればこの問題を解決できますか?
GUIを作成しようとしています。GUI がアクティブなときに、別の Python スクリプトを実行する必要があります。(GUIはこの実行からのデータを処理することになっています)Tkinterを使用してGUIを作成したため、pythonターミナルで別のファイルを実行できません。
どうすればこの問題を解決できますか?
別のインタープリターを起動する必要はありません。
別のスレッドまたはプロセスで、他のスクリプトからコードを実行するだけです。
「他の」スクリプトを別のスクリプトから呼び出せるようにします。そのために必要なのは、スクリプトが行っていたことを実行する関数だけです。
#other.py
def main(arg1, arg2, arg3):
do_stuff(arg1, arg2)
more_stuff(arg2, arg3)
other_stuff(arg1, arg3)
finish_stuff(arg1, arg2, arg3)
メイン スクリプトで からコードを実行する場合はother.py
、新しいスレッドを開始します。
#script.py
from threading import Thread
from other import main
thread = Thread(target = main)
thread.start() # This code will execute in parallel to the current code
作業が完了したかどうかを確認するには、 を使用しますthread.is_alive()
。完了するまでブロックするには、使用しますthread.join()