我正在编写一个应用程序,用于批处理PSSE 33中的应急研究,具有各种初始条件。我遇到了与API例程psspy.accc_with_dsp_3()
和/或psspy.accc_single_run_report_4()
相关的问题。我的程序在PSSE 32中使用例程psspy.accc()
和psspy.accc_single_run_report_3()
运行得很好,它在版本33中工作,直到我关闭它(即在我的root.destroy()
窗口调用Tkinter
) ,此时PSSE的进度窗口显示
AC应急分析结果“PATH / file.acc”已准备好进行图形显示
然后PSSE崩溃了。如果我在程序运行后等待几分钟或者我删除了最后生成的* .acc文件,那么当我关闭应用程序时PSSE不再崩溃,这告诉我问题可能与PSSE处理* .acc文件有关
以下是代码的一部分:
psspy.dfax([0, 1],
sub_file,
mon_file,
con_file,
dfx_file)
psspy.accc_with_dsp_3(accc_opt1,
accc_opt2,
"",
dfx_file,
acc_file,
"", "", "")
psspy.lines_per_page_one_device(1, 10000)
psspy.report_output(2,
dat_file,
[0, 0])
psspy.accc_single_run_report_4(rpt_opt1,
rpt_opt2,
rpt_opt3,
acc_file)
psspy.close_report()
psspy.close_powerflow()
根据PTI支持,
PSSE 33是使用Microsoft C / C ++(MSC)版本10编译器构建的(与Microsoft Visual Studio 2010对应)。 Python 2.7(因此Tkinter模块)是使用Microsoft C / C ++版本9编译器构建的(与Microsoft Visual Studio 2008对应)。为了使Python 2.7能够在PSSE33 GUI内部工作,PTI使用Visual Studio 2010重新编译了Python 2.7和其他一些基本的Python模块。我们遇到过与wxPython,Tkinter这样的崩溃。在wxPython应用程序的情况下,我已经看到当你运行wxPython作为对话而不是“mainloop app”时,你可以避免这种崩溃。我想知道,如果您编写Tkinter对话框来从PSSE调用,那么会避免这种崩溃。最好的解决方案是运行PSSE和你的脚本,它使用任何Python解释器中的Tkinter,比如IDLE(开始>程序> Python 2.7> IDLE)。这样可以避免您遇到的崩溃。
这不是一个令人满意的答案,因为这意味着PSSE 33中的用户定义的自定义工具功能不如以前的版本。任何人都可以提出更好的解决方法吗?
我在Windows 7上运行PSSE 33.7.0,Python 2.7.9和Tkinter 8.5。