我正在开发使用C扩展模块的python应用程序,我自己也开发过。扩展模块会进行大量操作,并使用OpenMP。
我最近使用PyQt4在我的Python应用程序中添加了一些GUI组件。但是,当我显示一个窗口时,应用程序在完全绘制窗口之前崩溃了(该窗口很快显示出来)。我能够找到问题所在:当我在没有OpenMP支持的情况下编译我的数字运算C扩展名时,Window正常显示,并且一切正常。我猜想这与OpenMP和Qt之间的线程有关。有没有人做过类似的观察?

最佳答案

解决方法是,可以使用openmp和Qt前端程序创建独立程序。并通过tcp套接字或您熟悉的方式使它们通信(dll是另一种选择?)。

关键是要隔离不同的模块,如果一个模块发生故障,您会知道哪一部分发生故障。
作为一个整体大程序,很难找到一个狂野的指针...

07-27 19:56