Проблема при создании скрипта PyQt с py2exe (QtCore) - PullRequest
1 голос
/ 07 января 2010

Я пытаюсь создать простое исполняемое приложение на Python с графическим интерфейсом в Windows, используя pyqt. Итак, я сделал pyqt.py файл

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()

Я пытался использовать py2exe со следующим setup.py сценарием:

from py2exe.build_exe import py2exe
from distutils.core import setup

setup( console=[{"script": "pyqt.py"}] )

(сначала была ошибка No module named sip, но она устранена благодаря странице Py2exeAndPyQt).

Теперь у меня есть исполняемый файл, и когда я пытаюсь запустить его, я получаю следующую ошибку:

Traceback (most recent call last):
  File "pyqt.py", line 2, in <module>
  File "PyQt4\QtGui.pyc", line 12, in <module>
  File "PyQt4\QtGui.pyc", line 10, in __load
ImportError: No module named QtCore

Как я могу это исправить? ТИА

Ответы [ 3 ]

3 голосов
/ 07 января 2010

Вы можете сделать что-то вроде этого, вам не нужно импортировать *.

py2exe_opciones = {'py2exe': {"includes":["sip"]}}
script = [{"script":"pyqt.py"}]

setup(windows=script,options=py2exe_opciones)

А теперь будет ли программа работать. У меня была такая же ошибка.

Здесь можете прочитать подробнее.

2 голосов
/ 07 января 2010

Добавить from PyQt4.QtCore import * к pyqt.py.

Я не уверен, почему он не был автоматически включен, но я думаю, что это как-то связано с тем, что QtCore используется только QtGui, который является библиотекой C ++ ... Например, py2exe только автоматически определяет зависимости python ... Так что вы должны импортировать его вручную.

0 голосов
/ 30 мая 2016

это пример

from setuptools import setup
import py2exe
from glob import glob

SETUP_DICT = {
    'windows': [{
        'script': 'main.py',
    }],

    'zipfile': 'lib/library.zip',

    'data_files': (
        ('', glob(r'C:\Windows\SYSTEM32\msvcp100.dll')),
        ('', glob(r'C:\Windows\SYSTEM32\msvcr100.dll')),
    ),

    'options': {
        'py2exe': {
            'bundle_files': 3,
            'includes': ['sip', 'PyQt4.QtCore'],
        },
    }
}

setup(**SETUP_DICT)
...