Stackless Python и PyQt - PullRequest
       25

Stackless Python и PyQt

4 голосов
/ 17 ноября 2009

Какой у вас опыт работы со Stackless Python и PyQt?

Проблемы, я был бы рад, если бы люди обращались:

  1. Компиляция PyQt для Stackless: нужно ли компилировать PyQt специально для Stackless? сборка гладкая? проблемы с привязками и т. д.

  2. Стабильность: какие-либо неожиданные сбои, зависания, паузы и другие странности?

  3. Управление памятью: любые намеки на утечки памяти. сравнение оперативной памяти, необходимой для приложений Stackless / Plain Vanilla PyQt

  4. Расширение возможностей разработки программного обеспечения: очень краткое описание моделей управления потоком данных для приложений PyQt на базе Stackless

  5. Извлеченные уроки: любой болезненный урок, ловушки, которых следует избегать, проблемы, с которыми вы, возможно, столкнулись

Будь счастлив

Ответы [ 2 ]

0 голосов
/ 12 января 2010

Я пытался пойти по этому пути несколько месяцев назад и решил, что оно того не стоит.

Мне удалось запустить бинарную установку PyQt (в Windows) на версию Python без стеков, но я обнаружил, что мне пришлось вручную войти и изменить некоторые файлы. Я получал сообщение об ошибке (извините, я забыл, что это было), и поиск в Google привел к решению несколько лет назад. Более новый код не включал старое исправление, поэтому изменение было не слишком сложным и (если я правильно помню) оно было в python, поэтому перекомпиляция не требовалась.

Но для меня это было нарушением условий сделки. Обновления Qt выходят регулярно, также как и обновления PyQt, и я не хотел постоянно исправлять код. Stackless и PyQt просто недостаточно используются для тщательной проверки. Я обнаружил, что риск отладки проблем довольно высок. Это особенно верно, учитывая, что автор stackless перешел на PyPy. Позвольте мне заранее извиниться - мне бы хотелось, чтобы у меня были ссылки на автора, который остановил разработку на python без стеков, и больше подробностей об ошибках, которые мне пришлось исправить - я не ожидал, что смогу извергнуть детали о переполнении стека.

Поэтому я решил запустить PyQt на обычном Python вместо стека.

Кстати, я также подумал, что смешивание сигналов / слотов с кодом без стеков может привести к путанице, поскольку это совершенно разные методы решения многопоточных задач.

Удачи!

0 голосов
/ 04 января 2010

Если вам все это интересно из-за оптимизации скорости:

Возможно, вы захотите проверить Незагруженная ласточка ( Википедия здесь ). Google (из-за того, что YouTube на 100% является Python) работает над JIT-компилятором для Python, который увеличит его скорость в 5-10 раз (приближая его к скоростям Java по сравнению с текущей виртуальной машиной). Самое приятное, что он будет работать со всем существующим кодом Python , что означает, что вам не нужно беспокоиться обо всех проблемах, связанных с другими проектами оптимизации Python.

Я ожидаю, что если вы разрабатываете достаточно большой проект, чтобы оправдать необходимость оптимизации на низком уровне, у вас все будет в порядке с разработкой на обычном Python, а затем с заменой текущей виртуальной машины, когда выйдет Unladen Swallow в производство.

...