我有一个可以使用 Python 宏进行扩展的应用程序。由于不经常使用python,因此对于每个宏,我都会初始化python解释器,运行宏,然后完成解释器。
一切正常,除了 PyQt5:在第一个宏结束后,所有类都从 PyQt5 模块中消失。我猜这是静态变量的问题,并且 PyObject 在最终确定时被破坏。但是除了永远不要杀死 Python 解释器之外,还有什么可做的吗?
这是我的宏的代码:
from PyQt5 import QtWidgets
def initialize(X, Y, Z, printed, parent):
X, ok = QtWidgets.QInputDialog.getDouble(parent, "Select radius", "X = ", float(X), 0, 10)
if not ok:
return False
return X, X, X, printed
在第一次运行时,我有对话框,但在任何其他运行时,我都会收到错误:
Traceback (most recent call last):
File "[...]/macros/TestBlur.py", line 13, in initialize
AttributeError: 'module' object has no attribute 'QInputDialog'
编辑:也许另一种看待这一点的方式是:有没有办法显式地实例化 PyQt5 的所有类,就像你必须调用import_array
初始化numpy
库一样?