我正在尝试从 pyinstaller exe 运行时环境中启动的正在运行的 Python (ProgramA.pyc) 模块派生另一个 Python 进程。
关键是 ProgramA 运行良好。但是,我不能 ProgramB 从同一个运行时环境开始。我需要强调我需要启动并运行它(从 ProgramA 模块),例如:
python ProgramB.pyc.
我不想将 ProgramB 导入 ProgramA,因为当它执行时,它会阻止 ProgramA 的 GUI。ProgramB 模块是一个阻塞模块,因为它调用了 smtplib 模块。
简单地从 MEIPASS 临时目录启动 ProgramB.pyc 也不是一个解决方案,因为它没有可用的 Python 脚本和其他运行时要求(否则来自 pyinstaller 生成的 .exe)。
在开发环境中,我可以从 ProgramA 启动 ProgramB,然后它确实是非阻塞的,因为它使用了另一个 Python 解释器(都没有 pyinstaller)。
如何从 pyinstaller 生成的可执行文件中执行此操作?
注意:ProgramB 模块位于 pyinstaller 生成的 exe 中,在 MEIPASS 目录中可用。但是那个没有从提取的 .exe 中获得任何环境设置。