在使用Popen创建的进程中使用Popen不会执行任何操作

问题描述 投票:0回答:1

我正在尝试从另一个脚本中打开一个python脚本而不使用Popen进行阻止。启动脚本会打开驱动程序脚本,并且(使用tkinter按钮)驱动程序脚本可以打开辅助脚本。当我尝试在驱动程序脚本中调用Popen时,什么也没发生-外壳打开得非常短暂,然后关闭。但是,当我运行驱动程序脚本而不先调用启动程序(如__main__)时,辅助脚本会很好地打开。

我已经在下面发布了代码,我是否缺少有关嵌套Popen调用的信息?对于可执行文件,我尝试了sys.executablepython.exepythonw.exe。没有工作。线程处理可以替代Popen,但辅助脚本也使用tkinter,因此我必须找到一种使tkinter线程安全的方法。

starter.py:

pid = subprocess.Popen(["pythonw.exe", "driver.py"])

driver.py:

pid = subprocess.Popen([sys.executable, "side_script.py"]
python tkinter subprocess popen
1个回答
0
投票

我发现了这个问题,幸运的是,这是一个简单的问题。根据Charles Duffy的建议,我尝试使用输出查看任何错误,错误= pid.communicate(),并发现查找文件时出错。我使用sys.path [0]调整了代码以指向文件,它解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.