Проблема при создании PyQt-скрипта с py2exe (QtCore)

StackOverflow https://stackoverflow.com/questions/2016658

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь создать простое исполняемое приложение с графическим интерфейсом hello-world на 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

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

Это было полезно?

Решение

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

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

setup(windows=script,options=py2exe_opciones)

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

Здесь можете почитать дальше.

Другие советы

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

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

это пример

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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top