Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Флейм
  • » Проблемы переносимости и распространения программ на Python [RSS Feed]

#1 Янв. 29, 2009 15:28:32

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

Написал скрипт на 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 заранее настоятельно прошу откусить себе пальцы и не насиловать зря клавиатуру.



Офлайн

#2 Янв. 29, 2009 15:48:13

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

The gray Cardinal
поставить это всё под Windows очень легко: нет никаких проблем с репозитариями и исходниками
Легко. Если только поставить, вручную. А если совместить кучу всего, то не легко. Попробуй собрать тот же pyQt из исходников под виндой ;). А на Линухе собрать намного проще, а потом завернуть это дело в пакет. Я бы так сделал.



Офлайн

#3 Янв. 29, 2009 16:03:57

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

balu
Этот пакет будет весить стопятьсот мегабайт. А поставить что-то автоматом из msi-дистрибутива под Windows вроде не большая проблема (политиками). Это я не ради затевания спора, а так, к слову.



Офлайн

#4 Янв. 29, 2009 16:23:00

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

По поводу оптимизации размера, я тебе отписался в топике по гуи. Уверен, что возможно уменьшить вдвое.
Смотрю пример:
Stellarium, программа, которая использует Qt, весит 44 мб, из них 34 метра- данные приложения. Остается 9 метров. Из низ QtCore4.dll и QtGui4.dll- 4.5 метров. Добавить сюда питон с библиотеками, оптимизировать, и получится те самые 8-9 метров, и возможно еще меньше.



Отредактировано (Янв. 29, 2009 16:48:09)

Офлайн

#5 Янв. 29, 2009 16:46:28

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

Эээм. Вопрос то в чем?

/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)

Офлайн

#6 Янв. 29, 2009 16:48:10

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

The gray Cardinal
Этот пакет будет весить стопятьсот мегабайт
нет.
The gray Cardinal
А поставить что-то автоматом из msi-дистрибутива
Не проблема. Но зависимости не дадут поставить несовместимых вещей.



Офлайн

#7 Янв. 29, 2009 16:50:54

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

j2a
не нужно предпринимать какие-то действия по “заворачиванию в пакеты”, просто берешь более свежие source-пакеты и пересобираешь штатными средствами
Это для себя. А для распространения?



Офлайн

#8 Янв. 29, 2009 16:52:38

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

balu
j2a
не нужно предпринимать какие-то действия по “заворачиванию в пакеты”, просто берешь более свежие source-пакеты и пересобираешь штатными средствами
Это для себя. А для распространения?
Вот это скорость ;) Я в постскриптуме написал до того как твой вопрос прочел :)



Офлайн

#9 Янв. 29, 2009 16:53:27

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы переносимости и распространения программ на Python

j2a
Эээм. Вопрос то в чем?
Вопроса толком нет :). Есть крик души (“мать, мать, мать…”, — привычно ответило эхо).
j2a
Легко собирается и помещается в локальный репозиторий. Только нужно последовательно обновить Qt4, sip, PyQt4.
Ты будешь всё это делать ради того, чтобы попробовать мой скрипт? ;).

P.S. Ты уже ответил, я вижу :).



Отредактировано (Янв. 29, 2009 16:55:33)

Офлайн

#10 Янв. 29, 2009 23:43:28

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Проблемы переносимости и распространения программ на Python

Ты, Борис, не прав. © Егор Лигачёв

Про причину нероботоспособности двойного щелчка в Linux, я понятия не имею, но вполне возможно просто глюк (не Боги горшки обжигают), а может и ты где-то напортачил. Бывает.

Про зоопарк с пингвинами скажу одно – да, проблема. Я тоже предпочитаю писать на последних версиях Qt и тоже сталкиваюсь с этой проблемой. Решается она созданием разных пакетов для разных дистров, с описнием зависимостей, чтобы дистр сам всё обновил. Или не обновил, но и не поставил. К сожалению в линукс нет нормальной системы пакетов программ, поэтому приходится извращаться. Unix-way, блин.

Сразу скажу, что под MacOS X нужно взять py2app, а из app собрать dmg и забыть о проблемах. :-) Правда просто.

Что касается размера под мазнай… В инсталлере с lzma сжатием это дело весит метров восемь. Сначала попробуй собрать, а потом отпишись о результатах. Под мак размер будет больше, потому что тут принят zip (уже полгода матерюсь!).
Да, конечно это не tk, но при сегодняшней связи размер небольшой.

P.S. Серый Кардинал, я замучился эту мошку с монитора сгонять! Постоянно рука тянется! :-)



Офлайн

  • Начало
  • » Флейм
  • » Проблемы переносимости и распространения программ на Python[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version