Bug 56335

Summary: python3-module-silx: после установки пакета не работают виджеты qt
Product: Sisyphus Reporter: Александр <belousovaa>
Component: python3-module-silxAssignee: Stanislav Levin <slev>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: amakeenk, grenka, rider, slev
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Текст ошибки none

Description Александр 2025-10-10 14:45:12 MSK
Created attachment 19734 [details]
Текст ошибки

python3-module-silx: после установки пакета не работают виджеты qt. Не хватает зависимости с пакетом python3-module-qt5.

Версия пакета:
python3-module-silx-2.2.2-alt1

Воспроизводится на системах:
alt education 11.0 x86_64 с KDE
alt education 11.0 x86_64 с xfce
alt workstation 11.1 x86_64 c GNOME
alt workstation K 11.1.1 x86_64 с KDE

Шаги воспроизведения:
1) Установите пакет:
# apt-get install python3-module-silx

2) Создайте тестовый скрипт на python:

$ cat > test_with_GUI.py << EOF

import numpy.random
from silx.gui import qt
from silx.gui.widgets.WaitingOverlay import WaitingOverlay
from silx.gui.plot import Plot2D


class MyMainWindow(qt.QMainWindow):
    WAITING_TIME = 2000  # ms

    def __init__(self, parent=None):
        super().__init__(parent)

        # central plot
        self._plot = Plot2D()
        self._waitingOverlay = WaitingOverlay(self._plot)
        self.setCentralWidget(self._plot)

        # button to trigger image generation
        self._rightPanel = qt.QWidget(self)
        self._rightPanel.setLayout(qt.QVBoxLayout())
        self._button = qt.QPushButton("generate image", self)
        self._rightPanel.layout().addWidget(self._button)

        self._dockWidget = qt.QDockWidget()
        self._dockWidget.setWidget(self._rightPanel)
        self.addDockWidget(qt.Qt.RightDockWidgetArea, self._dockWidget)

        # set up
        self._waitingOverlay.hide()
        self._waitingOverlay.setIconSize(qt.QSize(60, 60))
        # connect signal / slot
        self._button.clicked.connect(self._triggerImageCalculation)

    def _generateRandomData(self):
        self.setData(numpy.random.random(1000 * 500).reshape((1000, 500)))
        self._button.setEnabled(True)

    def setData(self, data):
        self._plot.addImage(data)
        self._waitingOverlay.hide()

    def _triggerImageCalculation(self):
        self._plot.clear()
        self._button.setEnabled(False)
        self._waitingOverlay.show()
        qt.QTimer.singleShot(self.WAITING_TIME, self._generateRandomData)


qapp = qt.QApplication([])
window = MyMainWindow()
window.show()
qapp.exec_()
EOF

Запустите скрипт:
$ python3 test_with_GUI.py

Ожидаемый результат:
Открывается окно тестового приложения  с пустым холстом.
После нажатия на кнопку открывается виджет загрузки изображения (крутящееся колесо), после создается на холсте белый шум.

Фактический результат:
Тестовое приложение не запускается. Терминал выдает ошибку. Текст ошибки прикрепил во вложениях.

Примечание: Данная ошибка связана с нехваткой зависимости с установкой пакета python3-module-matplotlib-qt5.
Comment 1 Александр 2025-10-10 14:48:50 MSK
(Ответ для Александр на комментарий #0)

> python3-module-silx: после установки пакета не работают виджеты qt. Не
> хватает зависимости с пакетом python3-module-qt5.

Я допустил ошибку в названии пакета: "python3-module-qt5". Правильно: "python3-module-matplotlib-qt5".
Comment 2 Alexander Makeenkov 2025-10-14 11:08:34 MSK
При установке пакета python3-module-silx+full все нужные зависимости устанавливаются и скрипт работает.

Другой вопрос, что в текущем р11 сейчас достаточно установить только python3-module-silx.

Однако, после обновления до задания https://packages.altlinux.org/ru/tasks/383988 этого становится недостаточно, т.к. у matplotlib были убраны зависимости на подпакеты (https://bugzilla.altlinux.org/50004).

Поэтому не знаю, можно ли считать данный баг действительно ошибкой. Если мейнтейнер считает, что для основного пакета python3-module-silx зависимость на matplotlib-qt лишняя, то можно её закрыть.
Comment 3 Stanislav Levin 2025-10-14 13:19:24 MSK
(In reply to Alexander Makeenkov from comment #2)
> При установке пакета python3-module-silx+full все нужные зависимости
> устанавливаются и скрипт работает.
> 
Так и задумано авторами.

> Другой вопрос, что в текущем р11 сейчас достаточно установить только
> python3-module-silx.

python3-module-silx ни в p11, ни в сизифе не имеет прямой зависимости на python3-module-matplotlib, это корректно. Скорее всего, в p11 python3-module-matplotlib - это НЕпрямая зависимость python3-module-silx.

> 
> Поэтому не знаю, можно ли считать данный баг действительно ошибкой. Если
> мейнтейнер считает, что для основного пакета python3-module-silx зависимость
> на matplotlib-qt лишняя, то можно её закрыть.

Считаю это не ошибкой, а задокументированной особенностью.