Форум сайта python.su
Я как maintainer проекта QBzr столкнулся с баг репортом о том, что наш плагин падает на Ubuntu Karmic и путем некоторых поисков вслепую выяснилось, что виноват PyQt 4.6. В ходе дальнейших расследований мне подсказали, что проблема заключается во множественном наследовании, когда один из базовых классов является классом PyQt4, а другой (наш собственный) – класс “старого” стиля (не унаследованный от object). Причем в PyQt 4.5 всё работало нормально.
Пока что я делаю срочную заплатку. Решил написать сюда о такой интересной проблеме, на всякий случай, может кому-то пригодится.
Комментарии в стиле “нефиг использовать старые классы” и “вы все дураки” – всячески приветствуются.
Офлайн
Александр, а выяснили - на чем именно ломалось?
super, вызов PyQT4 метода или что-то еще?
Офлайн
Нет, я выяснить не могу, поскольку работаю с PyQt 4.4 и на Windows.
Как я понял в 4.6 в каком-то месте (возможно в SIP) порезали обратную совместимость.
Возможно, 4.6 теперь нацелен на Python 3.x со всеми вытекающими.
Офлайн
Гм. А модельное приложение написать и проверить что именно из-за этого падает? А то так достаточно странно: мне сообщили, мне подсказали, сам не проверил, но баг в этом и уже исправлен.
Офлайн
j2a
Не так сурово. Воспроизводить каждый баг, случающийся на платформе, которую ты в глаза никогда не видел - нелегко. Хотя теоретически и нужно.
Офлайн
Андрей, согласен, звучит резковато, но, собственно это ж не проприетарщина, можно воспользоваться помощью коммунити… Написать concept proof – дело максимум получаса. Попросить коммунити протестить тестовый код на различном сочетании версия pyqt/платформа, сделать выводы.
И еще, не написано, что это проблема платформы, написано, что проблема версии PyQt. PyQt 4.6 для Windows есть.
Офлайн
Юрий, Вы резкий как понос. Но мне Ваши наезды (aka критика моей работы) – глубоко неинтересны.
Я скажу 2 вещи:
1) Несмотря на то, что я уже 2 года участвую в проекте QBzr, но экспертом в PyQt4 я не являюсь. И поскольку я им занимаюсь в свое свободное время, то изучаю только то, что нужно для непосредственной работы. Ибо см. п.2
2) Это всего лишь один из багов, который был найден коммьюнити, подтвержден коммьюнити, подсказка о исправлении пришла из коммьюнити и предлагаемый багфикс был протестирован членами коммьюнити. И если чесно – мне глубоко пофиг какие там на самом деле скрытые причины этого бага. Потому что кроме этого (весьма и весьма неприятного) бага у меня сегодня еще висит 150 других открытых багов, 7 из которых имеют важность High.
Ну и на закуску, ссылка на баг репорт для Ubuntu Karmic о том, что переход на 4.6 был несколько необдуманным:
https://bugs.launchpad.net/ubuntu/+source/qbzr/+bug/452210
Цитата оттуда:
“I think you're surely right about other apps having a problem with
python-qt4. I had a whole bunch of crash reports on my system today
from KDE apps that use Python: Frescobaldi, Update Manager, the works.
I'll make a more systematic list tomorrow morning, when I expect a new
lot to show up.”
Ещё я знаю, что Leo Editor тоже попал под удар 4.6.
Так что если Вы такой эксперт в PyQt4 (как следует из Вашего блога) и у вас есть достаточно свободного времени – пожалуйста, сделайте модельное приложение и протестируйте на своей платформе. Я буду ОЧЕНЬ рад услышать от Вас (и тоже стать умнее) детальный разбор почему многие приложения стали падать на 4.6.
Отредактировано (Окт. 19, 2009 07:33:42)
Офлайн