Найти - Пользователи
Полная версия: Убрать консоль с PyQt4 script.exe файла
Начало » GUI » Убрать консоль с PyQt4 script.exe файла
1 2
Razor


Доброго вечера. Искал и не нашел: как убрать консоль с фона приложения, после конвертации PyQt4 в exe? Типа, запуска с pyw. Пробовал pyw отправлять на конвертацию - не помогает.

Спасибо.
pmus
Чем компилируешь? Если Pyinstaller, то в нем есть ключик для этого!
Razor
Компилирую cx_Freeze. Python 3.2 x32, PyQt4 x32.
pyuser
Вы бы скрипт показали, а так, скорее всего объекту Executable передан параметр base = None (для GUI надо base = “Win32GUI”)
Razor
В скрипте ничего подобного нету. Я ничего не добавлял в скрипт для компиляции.

А скрипт то значения не имеет - скриптов много и у вех такая штука, но раз вы просите, то вот один, попроще (проблема та же самая, разумеется):



Код:

# -*- 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_())

Настройки cx_Freeze по умолчанию.
pyuser
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]
)
Запускать с параметром build
Razor
Опа. Не хочу показаться неряшливым, но что за setup.py? Его ложить вместе с программой и через нее компилировать? Первый раз слышу о ней Или плохо ищу, или…плохо ищу, но не могу найти, что делать с этим файлом при компиляции. Помогите, пожалуйста.
4kpt_II
Razor
Или плохо ищу, или…плохо ищу,
Или документацию не открывал вообще
orAnd
setup.py создаётся в той же дерекции что и скрипт, и тамже run.cmd с таким содержанием:
python setup.py build
и он запускается. Там же появляется папка build с вашим файлом :-)
vitosua
4kpt_II
Кстати а где можно найти толковую документацию по cx_Freeze?
а то гугп не дает толком ничего
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB