导入win32ui时退出时PyQt5崩溃

时间:2018-05-23 17:56:48

标签: python pyqt pywin32

我发现与PyQt5和pywin32的win32ui模块存在冲突。

我在:

  • Windows 10,64位
  • 64位Python 3.6.4(通过Anaconda)
  • PyQt 5.6
  • pywin32 223

当我运行以下最小示例时,我在退出时收到2个python.exe崩溃通知(在关闭" Hello"窗口之后)。如果我注释掉win32ui导入,则不会发生崩溃。

from PyQt5 import QtWidgets
import win32ui

app = QtWidgets.QApplication([])
window = QtWidgets.QLabel("Hello")
window.show()
app.exec_()

我发现了我认为的错误:https://github.com/mhammond/pywin32/issues/675,虽然我不知道如何确认这一点。据此,它与win32ui用来监视所有活动窗口的钩子有关。该错误似乎没有得到解决。

我在这里看到了另一个相关问题:Combining Tkinter and win32ui makes Python crash on exit

有关解决方法的任何建议吗?我使用win32ui作为捕获屏幕截图的一部分,我可以通过其他方式来做,但无论如何它都是一个烦人的bug。有趣的是,在PyCharm的调试器退出时它并没有崩溃。我猜测调试器会改变python解释器关闭进程的工作方式(或让解释器保持活动状态更长时间),以防止错误发生。

1 个答案:

答案 0 :(得分:0)

如果发生这种情况,而不是使用几乎相同的设置进行BPL。可能是它可以在32位python上运行,而不能在64位python上运行。