Форум сайта python.su
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)
Офлайн
Как раз абсолютные пути для этого вредны, так как если твою программу запустят с ярлыка, то рабочим каталогом станет каталог, где распологается ярлык. В моем примере, выясняется, где лежит python.dll (В котором и находится модуль os) и меняется рабочий каталог с программой.
По поподу dll, я в другом топике отписался… хм… Передо мной QtGui4.dll (версия файла 4.4.2, 3.36 мб) и QtCore4.dll (версия файла 4.4.2, 883 кб). Откуда такая разница в размерах, не знаю.
Добавлено
Попробуй эти, про готорые говорю, возможно подойдут
Отредактировано (Янв. 29, 2009 17:03:53)
Офлайн
igor.kaistНичего не понял. Мне нужен каталог самого скрипта, т.к. всё остальное пляшет от него. Я не верно его нахожу (код выше)?
Как раз абсолютные пути для этого вредны, так как если твою программу запустят с ярлыка, то рабочим каталогом станет каталог, где распологается ярлык. В моем примере, выясняется, где лежит python.dll (В котором и находится модуль os) и меняется рабочий каталог с программой.
Офлайн
igor.kaistУ меня версии этих Dll — 4.4.1.0.
Откуда такая разница в размерах, не знаю.
Офлайн
Хм…. А в трейсбек ничего не попадает?
P.S. Глянь на мой пост выше, добавил ссылку на те кутишные библиотеки.
P.S. Не успеваю писать и редактировать свои посты :)
Отредактировано (Янв. 29, 2009 17:08:11)
Офлайн
igor.kaistВ выводе при компиляции ничего подозрительного не вижу.
Хм…. А в трейсбек ничего не попадает?
P.S. Глянь на мой пост выше, добавил ссылку на те кутишные библиотеки.
Офлайн
The gray CardinalДа ты дебаг вывод в процессе работы сделай, при компиляции то ничего не покажет.
В выводе при компиляции ничего подозрительного не вижу.
Офлайн
Все, дошло до меня… Забыл про существование upx… Сжал python.dll с 2,1 мб до 888 кб, все работает…
Офлайн
Эврика!!!! :)
upx'ом сжимаются exe, dll, pyd… Практически hello world на python+Tkinter+Ttk в распакованном виде 2.7 метров, в 7z 1.9 метров.
Офлайн
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В общем-то всё понятно, достаточно посмотреть на размер виндового дистриба PyQt4 для 2.5 и для 2.6 (у меня 2.5) и всё встаёт на свои места :).
По поводу dll, у меня подозрение, что они как то сжаты просто, так как в архиве 7z они практически не уменьшаются в размере.
Отредактировано (Янв. 29, 2009 18:11:48)
Офлайн