0

我正在为具有各种初始条件的 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 应用程序”运行时,您可以避免此类崩溃。我想知道,如果您编写 Tkinter 对话框以从 PSSE 调用,是否会避免此类崩溃。最好的解决方案是从任何 Python 解释器运行 PSSE 和使用 Tkinter 的脚本,例如 IDLE(开始 > 程序 >Python 2.7 >IDLE)。

这不是一个令人满意的答案,因为这意味着 PSSE 33 中用户定义的自定义工具的功能不如以前的版本。任何人都可以提出更好的解决方法吗?

我在 Windows 7 上运行 PSSE 33.7.0、Python 2.7.9 和 Tkinter 8.5。

4

0 回答 0