pyinstaller exe ランタイム環境内から開始された実行中の Python (ProgramA.pyc) モジュールから別の Python プロセスをフォークしようとしています。
ポイントは、ProgramA が正常に動作することです。ただし、同じランタイム環境から ProgramB を開始することはできません。次のように (ProgramA モジュールから) 起動して実行する必要があることを強調する必要があります。
python ProgramB.pyc.
ProgramB を実行すると ProgramA の GUI がブロックされるため、ProgramB を ProgramA にインポートしたくありません。ProgramB モジュールは、それが呼び出す smtplib モジュールのためにブロッキング モジュールです。
MEIPASS temp dir から ProgramB.pyc を起動するだけでは、Python スクリプトやその他のランタイム要件が利用できないため、解決策にはなりません (それ以外の場合は、pyinstaller によって生成された .exe から取得されます)。
開発環境では、ProgramA から ProgramB を開始できますが、別の Python インタープリター (すべて pyinstaller なし) を使用するため、実際にはノンブロッキングです。
pyinstaller によって生成された実行可能ファイルからどのように行うのですか?
注: ProgramB モジュールは、pyinstaller によって生成された exe 内にあり、MEIPASS ディレクトリで使用できます。しかし、それは抽出された .exe から環境設定を取得しません。