Форум сайта python.su
Доброго вечера. Искал и не нашел: как убрать консоль с фона приложения, после конвертации PyQt4 в exe? Типа, запуска с pyw. Пробовал pyw отправлять на конвертацию - не помогает.
Спасибо.
Отредактировано Razor (Дек. 14, 2013 14:38:44)
Офлайн
Чем компилируешь? Если Pyinstaller, то в нем есть ключик для этого!
Офлайн
Компилирую cx_Freeze. Python 3.2 x32, PyQt4 x32.
Офлайн
Вы бы скрипт показали, а так, скорее всего объекту Executable передан параметр base = None (для GUI надо base = “Win32GUI”)
Офлайн
В скрипте ничего подобного нету. Я ничего не добавлял в скрипт для компиляции.
А скрипт то значения не имеет - скриптов много и у вех такая штука, но раз вы просите, то вот один, попроще (проблема та же самая, разумеется):
Код:
# -*- coding: utf-8 -*- from PyQt4 import QtCore, QtGui, uic import random class MainForm(QtGui.QWidget): def __init__(self, parent=None, bank=1000): QtGui.QWidget.__init__(self, parent) self.ui = uic.loadUi('coin.ui', self) self.bank = 1000 self.max_bank = [1000] self.min_bank = [1000] self.max_guess = 0 self.m_quess = [1] self.connect(self.ui.butHeads, QtCore.SIGNAL('clicked()'), self.setHeads) self.connect(self.ui.butTails, QtCore.SIGNAL('clicked()'), self.setTails) def setReturn(self, x=None): self.rnd = random.randrange(0,2) # Рандомно выдаем одно из чисел (0, 1) if self.rnd == x: # Если угадываем, прибавляем 15 очков if self.rnd == 0: self.ui.coin_result.setText('Орел +15') else: self.ui.coin_result.setText('Решка + 15') self.bank_add('+15') self.max_guess += 1 if self.max_guess > self.m_quess[-1]: self.m_quess.append(self.max_guess) self.ui.max_result_2.setText(str(self.m_quess[-1])) else: # В остальных случаях - отнимаем if self.rnd == 0: self.ui.coin_result.setText('Орел -15') else: self.ui.coin_result.setText('Решка -15') self.bank_add('-15') if self.max_guess > self.m_quess[-1]: self.m_quess.append(self.max_guess) self.max_guess = 0 def bank_add(self, money): #Добавление и сокращение банка. Проверка макс и мин значений if money == '+15': self.bank += 15 self.ui.result.setText(str(self.bank)) else: self.bank -= 15 self.ui.result.setText(str(self.bank)) if self.bank > self.max_bank[-1]: self.max_bank.append(self.bank) self.ui.max_result.setText(str(self.bank)) if self.bank < self.min_bank[-1]: self.min_bank.append(self.bank) self.ui.min_result.setText(str(self.bank)) def setHeads(self): self.setReturn(0) def setTails(self): self.setReturn(1) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = MainForm() window.show() sys.exit(app.exec_())
Офлайн
RazorТо, что вы выложили, конечно же значения не имеет :), я имел ввиду скрипт setup.py
А скрипт то значения не имеет
from cx_Freeze import setup, Executable includefiles = [] includes = [] excludes = [] packages = [] target = Executable( script = "main_script_name.py", base = "Win32GUI", targetName = "program.exe", ) setup( name = "program_name", version = "program_version", description = "description", author = "program_author", author_email = "email", options = {"build_exe": { "build_exe": r"..\dist", "icon": r"..\resource\program_ico.ico", "optimize": 2, "compressed": True, "create_shared_zip": True, "copy_dependent_files": True, "includes": includes, "excludes": excludes, "packages": packages, 'include_files': includefiles}}, executables = [target] )
Офлайн
Опа. Не хочу показаться неряшливым, но что за setup.py? Его ложить вместе с программой и через нее компилировать? Первый раз слышу о ней Или плохо ищу, или…плохо ищу, но не могу найти, что делать с этим файлом при компиляции. Помогите, пожалуйста.
Офлайн
RazorИли документацию не открывал вообще
Или плохо ищу, или…плохо ищу,
Офлайн
setup.py создаётся в той же дерекции что и скрипт, и тамже run.cmd с таким содержанием:
python setup.py build
и он запускается. Там же появляется папка build с вашим файлом :-)
Офлайн
4kpt_IIКстати а где можно найти толковую документацию по cx_Freeze?
Офлайн