Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4: настольная игрушка (попробуйте скрипт) [RSS Feed]

#1 Янв. 29, 2009 16:36:19

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

PyQt4: настольная игрушка (попробуйте скрипт)

igor.kaist
Спасибо.

По поводу оптимизации размера. В папку dist тупо включается:
QtGui4.dll — 10 436 608 байт;
QtCore4.dll — 2 660 864 байт;
PyQt4.QtGui.pyd — 6 218 240 байт;
PyQt4.QtCore.pyd — 1 563 136 байт.
И что с ними делать?

По поводу путей не пойму. Я везде использую только абсолютные пути :/.

self.home = os.path.realpath(os.path.dirname(sys.argv[0])) # каталог скрипта
self.home = unicode(self.home, locale.getpreferredencoding())
self.home = self.home.replace('\\', '/')



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

Офлайн

#2 Янв. 29, 2009 16:56:41

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

PyQt4: настольная игрушка (попробуйте скрипт)

Как раз абсолютные пути для этого вредны, так как если твою программу запустят с ярлыка, то рабочим каталогом станет каталог, где распологается ярлык. В моем примере, выясняется, где лежит python.dll (В котором и находится модуль os) и меняется рабочий каталог с программой.
По поподу dll, я в другом топике отписался… хм… Передо мной QtGui4.dll (версия файла 4.4.2, 3.36 мб) и QtCore4.dll (версия файла 4.4.2, 883 кб). Откуда такая разница в размерах, не знаю.

Добавлено
Попробуй эти, про готорые говорю, возможно подойдут



Отредактировано (Янв. 29, 2009 17:03:53)

Офлайн

#3 Янв. 29, 2009 17:02:10

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

PyQt4: настольная игрушка (попробуйте скрипт)

igor.kaist
Как раз абсолютные пути для этого вредны, так как если твою программу запустят с ярлыка, то рабочим каталогом станет каталог, где распологается ярлык. В моем примере, выясняется, где лежит python.dll (В котором и находится модуль os) и меняется рабочий каталог с программой.
Ничего не понял. Мне нужен каталог самого скрипта, т.к. всё остальное пляшет от него. Я не верно его нахожу (код выше)?
Кроме того, в процессе “отладки” уже готового exe я вижу, что каталог-то абсолютно верный (я просто вписал в код выдачу сообщений во всплывающих окошках перед компиляцией).



Офлайн

#4 Янв. 29, 2009 17:05:18

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

PyQt4: настольная игрушка (попробуйте скрипт)

igor.kaist
Откуда такая разница в размерах, не знаю.
У меня версии этих Dll — 4.4.1.0.
Видимо, размеры непобедимы…



Офлайн

#5 Янв. 29, 2009 17:07:14

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

PyQt4: настольная игрушка (попробуйте скрипт)

Хм…. А в трейсбек ничего не попадает?
P.S. Глянь на мой пост выше, добавил ссылку на те кутишные библиотеки.

P.S. Не успеваю писать и редактировать свои посты :)



Отредактировано (Янв. 29, 2009 17:08:11)

Офлайн

#6 Янв. 29, 2009 17:12:07

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

PyQt4: настольная игрушка (попробуйте скрипт)

igor.kaist
Хм…. А в трейсбек ничего не попадает?
P.S. Глянь на мой пост выше, добавил ссылку на те кутишные библиотеки.
В выводе при компиляции ничего подозрительного не вижу.
Библиотеки взял, спасибо. Только пока не решу вопрос с путями, они бесполезны — сейчас у меня ничего не запускается просто (хотя, на импорт не ругается, так что есть надежда, что библиотеки то что надо).



Офлайн

#7 Янв. 29, 2009 17:19:59

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

PyQt4: настольная игрушка (попробуйте скрипт)

The gray Cardinal
В выводе при компиляции ничего подозрительного не вижу.
Да ты дебаг вывод в процессе работы сделай, при компиляции то ничего не покажет.
По поводу dll, у меня подозрение, что они как то сжаты просто, так как в архиве 7z они практически не уменьшаются в размере.



Офлайн

#8 Янв. 29, 2009 17:32:16

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

PyQt4: настольная игрушка (попробуйте скрипт)

Все, дошло до меня… Забыл про существование upx… Сжал python.dll с 2,1 мб до 888 кб, все работает…



Офлайн

#9 Янв. 29, 2009 17:53:30

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

PyQt4: настольная игрушка (попробуйте скрипт)

Эврика!!!! :)
upx'ом сжимаются exe, dll, pyd… Практически hello world на python+Tkinter+Ttk в распакованном виде 2.7 метров, в 7z 1.9 метров.



Офлайн

#10 Янв. 29, 2009 18:01:57

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

PyQt4: настольная игрушка (попробуйте скрипт)

igor.kaist
Да ты дебаг вывод в процессе работы сделай, при компиляции то ничего не покажет.
Traceback (most recent call last):
File “milfoil.py”, line 502, in new_game_36
File “milfoil.py”, line 399, in new_game
File “milfoil.py”, line 372, in createCardItem
ZeroDivisionError: float division
Я это уже озвучивал выше: деление на ноль только из-за того, что не нашлась картинка.
igor.kaist
По поводу dll, у меня подозрение, что они как то сжаты просто, так как в архиве 7z они практически не уменьшаются в размере.
В общем-то всё понятно, достаточно посмотреть на размер виндового дистриба PyQt4 для 2.5 и для 2.6 (у меня 2.5) и всё встаёт на свои места :).



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

Офлайн

  • Начало
  • » GUI
  • » PyQt4: настольная игрушка (попробуйте скрипт)[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version