exe-файл не работает должным образом (ничего не происходит)

Когда я компилирую свой файл (snake.py) в exe, выходной файл (файл exe) не работает. Я подумал, что это может быть результатом ошибки, возникающей при компиляции:

missing modules:
? _frozen_importlib imported from importlib

введите описание изображения здесь

Любые идеи??

import sys
from cx_Freeze import setup, Executable

base = None
if sys.platform == "win32":
      base = "Win32GUI"

setup(
    name = "simple_PyQt4",
    version = "0.1",
    description = "Sample cx_Freeze PyQt4 script",
    options = {"build_exe" : {"includes" : "atexit" }},
    executables = [Executable("hello_qt.py", base = base)])

person Soheil    schedule 19.01.2014    source источник
comment
Какой инструмент вы используете для компиляции exe?   -  person Fenikso    schedule 20.01.2014
comment
Какую ошибку выдает exe? Как именно это не работает?   -  person Fenikso    schedule 20.01.2014
comment
Каковы ваши настройки для создания exe? Сможете ли вы успешно построить hello_world.py? Сможете ли вы успешно создать что-то вроде hello_qt.py?   -  person Fenikso    schedule 20.01.2014
comment
Я использую cx_freeze. Вот моя настройка, не важно, что я компилирую (даже простой hello_qr.py), вывод exe не работает. Не будет никаких ошибок, я имею в виду, что ничего не происходит, когда я пытаюсь открыть файл exe : import sys from cx_Freeze import setup, Executable base = None if sys.platform == win32: base = Win32GUI setup (name = simple_PyQt4, version = 0.1, description = Sample cx_Freeze PyQt4 script, options = {build_exe: {includes: atexit}) }, исполняемые файлы = [Исполняемый файл (hello_qt.py, base = base)])   -  person Soheil    schedule 20.01.2014
comment
Вы используете Python 2.x или Python 3.x?   -  person Fenikso    schedule 20.01.2014
comment
Хорошо, обновил ответ на Python 3.3.   -  person Fenikso    schedule 20.01.2014


Ответы (1)


Я использую PySide, но он должен быть почти эквивалентен вашему PyQt.

У меня есть этот код hello_pyside.py:

import sys
from PySide.QtCore import *
from PySide.QtGui import *

class Window(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)

        self.button = QPushButton("Test", self)
        self.button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        self.layout = QHBoxLayout()
        self.layout.setContentsMargins(5, 5, 5, 5)
        self.layout.addWidget(self.button)

        self.setLayout(self.layout)
        self.show()

app = QApplication(sys.argv)
win = Window()
sys.exit(app.exec_())

Я называю этот сценарий установленным с cx_freeze:

c:\Python33\Scripts\cxfreeze.bat hello_pyside.py --target-dir=Bin/pyside --base-name=Win32GUI --target-name=hello_pyside.exe --include-modules=re --exclude-modules=Tkinter

И я получаю каталог, содержащий:

_bz2.pyd
hello_pyside.exe
PySide.QtCore.pyd
PySide.QtGui.pyd
pyside-python3.3.dll
python33.dll
QtCore4.dll
QtGui4.dll
shiboken-python3.3.dll
unicodedata.pyd

Это должно работать нормально.

person Fenikso    schedule 20.01.2014