Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Сборка приложения на PyQt4 в .exe файл. [RSS Feed]

#1 Апрель 14, 2014 21:59:49

WotS
Зарегистрирован: 2013-04-15
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

Друзья, рад вас приветствовать. Собственно, вопрос описан в заголовке темы. Подскажите пожалуйста как можно собрать в .exe файл приложение, написанное на PyQt4. Нашёл вот эту статью: http://asakasinsky.blogspot.ru/2011/06/pyqt4-exe.html но не смог по ней создать .exe'шник.

Офлайн

#2 Апрель 14, 2014 22:17:35

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

WotS
попробуй cx_Freeze
http://fkn.ktu10.com/?q=node/3908

а с Pyinstaller у меня тоже не получилось

Офлайн

#3 Апрель 15, 2014 02:43:32

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

Когда-то по PyInstaller писал специальную документацию для студентов. Могу дать. Но лучше действительно использовать для этих задач cxFreeze ибо внутри pyInstaller там не все так гладко, как хотелось бы

Офлайн

#4 Апрель 15, 2014 02:52:08

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

WotS
cx_Freeze.
Вот например у меня есть програмка на Qt, сделанная 1 файлом name.pyw. После установки cx_Freeze, введя в консоли команду cxfreeze.bat name.pyw, я получаю папку dist со сборкой всего необходимого и файлом name.exe - что может быть проще? Если проект чуть сложнее 1 файла, возможно, понадобится указать некоторые ключи конфигурации, которые можно узнать в документации.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Апрель 15, 2014 21:49:35

WotS
Зарегистрирован: 2013-04-15
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

Всё пробую cx_Freeze — никак не получается. Созданынй .exe файл не открывается.
http://www.pythonschool.net/cxfreeze_win/
http://www.youtube.com/watch?v=Qx5h_-5zEsQ

По этим урокам делал.

Офлайн

#6 Апрель 15, 2014 23:46:47

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

WotS
выкладывайте ваш проект



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Апрель 16, 2014 08:17:57

WotS
Зарегистрирован: 2013-04-15
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

Офлайн

#8 Апрель 18, 2014 00:41:57

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Сборка приложения на PyQt4 в .exe файл.

Итак, для начала делаем

 cxfreeze.bat course.py
в получившуюся директорию dist копируем изображение. Запускаем (через консоль что бы видеть тексты ошибок), ругается на отсутствующий модуль atexit, но это не беда, руками указываем cx_Freeze подгружать и его:
cxfreeze.bat --include-modules atexit course.py
В результате программа запустится, но окна не видно. Далее начинаем отладку для разбора что же за гадость такая происходит, смотрим ваш код. В конструкторе главного класса (=класса главного окна программы) 2 метода, в результате манипуляций с ними выясняем что если убрать все что связанно с изображением: метод loadImage и self.resize(self.img.width(), self.img.height()) в initUI, то окно появляется. Если вернуть метод loadImage, а в initUI руками задать размеры окна, то окно появляется но без изображения. Отсюда делаем вывод что какие то проблемы вокруг изображения, вставляем для отладки строчку
print self.img.width(), self.img.height()
и видим что в обычном запуске размеры изображения 438, 307 , а в случае с cx_Freeze 0, 0 . Вот где собака зарыта - изображение либо не загружается, либо что то еще,но связанное с ним.

Попытка подсмотреть разницу в импоритируемых модулях при запуске через python и cx_Freeze, с последующим указанием их последнему не увенчалась успехом.

Где закралась проблема - не знаю и пока идей нет. Может кто еще подскажет?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

  • Начало
  • » GUI
  • » Сборка приложения на PyQt4 в .exe файл.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version