Python 在子进程卡住时卡住 - 异常,超时不起作用

问题描述

我试图从 Python 中多次运行 Xfoil。我的第一种方法是使用 os.system:

    os.system("D:\\ProgramsD\\XFoil\\xfoil.exe < xfoil_input.txt")

这工作正常,直到 Xfoil 卡住,然后我需要从任务管理器中手动关闭 Xfoil,然后代码继续运行,直到它再次卡住。

我现在正在尝试使用子进程:

    run = subprocess.run("D:\\ProgramsD\\XFoil\\xfoil.exe < xfoil_input.txt",cwd = project_directory,timeout =60,shell = True)

这个库似乎在做它的工作,它在 60 秒后杀死了 Xfoil,但在那之后 Python 仍然卡住了。这是在一切都失败后命令行打印的最后一件事:

    VISCAL:  Convergence Failed
    
     Sequence halted since prevIoUs  4 points did not converge
     Last-converged  alpha =  -4.250    CL =  -2.50221
    
    .OPERva   c>
     XFOIL   c>
     XFOIL   c>

这与我使用 os.system 得到的错误相同,只是在这种情况下我可以手动关闭 Xfoil 并且我的 Python 脚本继续运行。无论哪种情况,VS Code 都可以继续工作,而且我可以终止我的程序。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)