Pregunta

Estoy haciendo una aplicación en Python usando PySide y Qt, y tengo que abrir una página web, por lo que utiliza QWebView de QtWebKit.

En mi máquina de desarrollo funciona muy bien, tanto de ejecutar el código directamente y funcionamiento, la salida py2exe. En una máquina "limpia" (sin ningún Python y Qt instalados), la salida de py2exe no muestra la página web. El resto de la aplicación funciona bien y no hay ningún accidente o excepción, pero el QWebView sólo se queda en blanco.

He intentado abrir una URL sin imágenes u otras cosas para evitar cualquier problema relacionado con los plugins que faltan WebKit. También probé un sencillo programa que solo se abre en una example.com QWebView y nada más, y que también no funcionaba.

¿Alguien ha encontrado algo similar? Además, nadie sabe si QWebKit tiene ningún tipo de dependencias "menos documentadas" que py2exe podría no estar tirando en el "paquete"?

¿Fue útil?

Solución

Me gustaría probar PyInstaller. Parece que funciona bien cuando la compilación de PyQt cosas, ya que olfatea dependencias y paquetes de ellos también (bueno, parece que hacer eso). Estaba haciendo una aplicación QT con Python también, y escupir un único binario que trabajó la derecha del palo.

Aquí hay un enlace: http://www.pyinstaller.org/

Buena suerte!

Otros consejos

Para cualquier persona que todavía tendrá que con algunas dificultades, ahí lo tienes:

http://developer.qt.nokia.com/wiki/Packaging_PySide_applications_on_Windows

Es necesario incluir de forma manual desde el lado py2exe:)

Probar en las opciones py2exe:

packages = ["PySide.QtNetwok"]

respuesta elegida en realidad no responde a la pregunta. Tenía un problema similar, mis usos de aplicación PySide y QtWebKit, en mi máquina dev funcionaba bien, en la máquina del usuario después empaquetados con py2exe no.

en primer lugar su setup.py debe incluir explícitamente PySide.QtNetwork: enlace

...
setup(
    ...
    options = {
        'py2exe': {
            ...
            'includes': ['PySide.QtNetwork'],
            ...
        }
    }
...

después de que usted debe paquete OpenSSL DLL: enlace

aquí y get Win32OpenSSL (puede usar la versión ligera) copiar y libeay32.dll ssleay32.dll a su carpeta de proyecto y añadir tanto como como archivos de datos en su setup.py como esto:

...
setup(data_files=[('', ['libeay32.dll','ssleay32.dll'])],
...

y, finalmente, es necesario agregar la imagen de apoyo: añadir las extensiones de imágenes como archivos de datos, al final debería ser algo como esto:

...
setup(data_files=[("imageformats", glob(r'C:\Python27\Lib\site-packages\PySide\plugins\*.*')),('', ['libeay32.dll','ssleay32.dll'])],
...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top