PyQt5 и инициализация / финализация интерпретатора Python

У меня есть приложение, которое можно расширить с помощью макросов 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 библиотека?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]