Форум сайта python.su
Написал скрипт на Python + PyQt4:
http://forum.script-coding.info/viewtopic.php?id=2665
Обсуждение тут:
http://python.su/forum/viewtopic.php?id=3578
Получилось следующее:
* для работы нужна Qt 4.4.0 и ни на копейку меньше;
* под Linux не работает двойной щелчок в GUI;
* stanalone executable для Windows весит 25 Мб.
Исправлять под более старую Qt мне кажется идиотизмом, потому что 4.4.0 — не бета. Но многие пользователи Linux не могут запустить скрипт из-за (типичного для Linux, по-моему) зоопарка версий пакетов: если данной версии пакета нет в доступном репозитарии, долбаться с установкой этой хрени из исходников неохота никому. Делать stanalone executable для Windows нет большого смысла, т.к. это будет иметь размеры слона. Происхождение и способы ликвидации глюка с двойным щелчком в GUI под Linux неясны.
Результат: имеем переносимость, равную нулю. Т.е. как следует это работает только под Windows, при условии, что стоит нормальный Python и PyQt4. К слову, поставить это всё под Windows очень легко: нет никаких проблем с репозитариями и исходниками, т.к. обе вещи ставятся из инсталляторов, состоящих из одного файла, нажатием кнопки “Далее” левой ногой, при этом нет никаких конфликтов и глюков. Вывод: явное превосходство Windows, а также то, что переносимость программ на Python оставляет сильно желать лучшего, мягко говоря.
В общем, давайте советы, как мне правильно жить, чтобы такого не случалось :lol:.
P.S. Советчиков не писать на Python и не подходить к Linux заранее настоятельно прошу откусить себе пальцы и не насиловать зря клавиатуру.
Офлайн
The gray CardinalЛегко. Если только поставить, вручную. А если совместить кучу всего, то не легко. Попробуй собрать тот же pyQt из исходников под виндой ;). А на Линухе собрать намного проще, а потом завернуть это дело в пакет. Я бы так сделал.
поставить это всё под Windows очень легко: нет никаких проблем с репозитариями и исходниками
Офлайн
balu
Этот пакет будет весить стопятьсот мегабайт. А поставить что-то автоматом из msi-дистрибутива под Windows вроде не большая проблема (политиками). Это я не ради затевания спора, а так, к слову.
Офлайн
По поводу оптимизации размера, я тебе отписался в топике по гуи. Уверен, что возможно уменьшить вдвое.
Смотрю пример:
Stellarium, программа, которая использует Qt, весит 44 мб, из них 34 метра- данные приложения. Остается 9 метров. Из низ QtCore4.dll и QtGui4.dll- 4.5 метров. Добавить сюда питон с библиотеками, оптимизировать, и получится те самые 8-9 метров, и возможно еще меньше.
Отредактировано (Янв. 29, 2009 16:48:09)
Офлайн
Эээм. Вопрос то в чем?
/me использует Debian Etch и ALTLinux 4.0. Ни в первом, ни во втором проблем с пересборкой более свежей версии Qt4 и PyQt4 нет. Легко собирается и помещается в локальный репозиторий. Только нужно последовательно обновить Qt4, sip, PyQt4. Т.е. не нужно предпринимать какие-то действия по “заворачиванию в пакеты”, просто берешь более свежие source-пакеты и пересобираешь штатными средствами (pbuilder в Debian, hasher в ALTLinux).
P.S. Если речь идет о “я вот тут написал программу, а в Linux ее смогло запустить 30%”, так тогда выбирать версию библиотек по другим критериям. Например, наличие нужных версий у целевой аудитории. Я, понятное дело, стал бы обновлять версии библиотек в системе только если ПО ну очень нужно.
Отредактировано (Янв. 29, 2009 16:51:33)
Офлайн
The gray Cardinalнет.
Этот пакет будет весить стопятьсот мегабайт
The gray CardinalНе проблема. Но зависимости не дадут поставить несовместимых вещей.
А поставить что-то автоматом из msi-дистрибутива
Офлайн
j2aЭто для себя. А для распространения?
не нужно предпринимать какие-то действия по “заворачиванию в пакеты”, просто берешь более свежие source-пакеты и пересобираешь штатными средствами
Офлайн
baluВот это скорость ;) Я в постскриптуме написал до того как твой вопрос прочел :)j2aЭто для себя. А для распространения?
не нужно предпринимать какие-то действия по “заворачиванию в пакеты”, просто берешь более свежие source-пакеты и пересобираешь штатными средствами
Офлайн
j2aВопроса толком нет :). Есть крик души (“мать, мать, мать…”, — привычно ответило эхо).
Эээм. Вопрос то в чем?
j2aТы будешь всё это делать ради того, чтобы попробовать мой скрипт? ;).
Легко собирается и помещается в локальный репозиторий. Только нужно последовательно обновить Qt4, sip, PyQt4.
Отредактировано (Янв. 29, 2009 16:55:33)
Офлайн
Ты, Борис, не прав. © Егор Лигачёв
Про причину нероботоспособности двойного щелчка в Linux, я понятия не имею, но вполне возможно просто глюк (не Боги горшки обжигают), а может и ты где-то напортачил. Бывает.
Про зоопарк с пингвинами скажу одно – да, проблема. Я тоже предпочитаю писать на последних версиях Qt и тоже сталкиваюсь с этой проблемой. Решается она созданием разных пакетов для разных дистров, с описнием зависимостей, чтобы дистр сам всё обновил. Или не обновил, но и не поставил. К сожалению в линукс нет нормальной системы пакетов программ, поэтому приходится извращаться. Unix-way, блин.
Сразу скажу, что под MacOS X нужно взять py2app, а из app собрать dmg и забыть о проблемах. :-) Правда просто.
Что касается размера под мазнай… В инсталлере с lzma сжатием это дело весит метров восемь. Сначала попробуй собрать, а потом отпишись о результатах. Под мак размер будет больше, потому что тут принят zip (уже полгода матерюсь!).
Да, конечно это не tk, но при сегодняшней связи размер небольшой.
P.S. Серый Кардинал, я замучился эту мошку с монитора сгонять! Постоянно рука тянется! :-)
Офлайн