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 библиотека?

0 ответов

Другие вопросы по тегам