Problema mientras se construye una secuencia de comandos con PyQt py2exe (QtCore)

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

  •  19-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de hacer una aplicación ejecutable de Python GUI hola-mundo simple en las ventanas utilizando pyqt. Así que he hecho el archivo pyqt.py

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

He intentado utilizar py2exe con la siguiente secuencia de comandos setup.py:

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

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

(tuve el error No module named sip primera, pero ha resuelto gracias a la página Py2exeAndPyQt).

Ahora tengo el ejecutable y cuando intento ejecutarlo, me sale el siguiente error:

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

¿Cómo puedo solucionarlo? TIA

¿Fue útil?

Solución

Puede hacer algo como esto, que no es necesario importar *.

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

setup(windows=script,options=py2exe_opciones)

Y ahora el programa debería funcionar. Yo tenía el mismo error.

Aquí puede leer más.

Otros consejos

Añadir a from PyQt4.QtCore import * pyqt.py.

No estoy seguro de por qué no era auto-incluido, pero yo creo que tiene algo que ver con QtCore único ser utilizado por QtGui, que es un C ++ lib ... Como, py2exe solamente detecta automáticamente las dependencias de pitón ... Así que hay que importar de forma manual.

este es un ejemplo

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top