Domanda

sto facendo un programma in Python utilizzando PySide e Qt, e ho bisogno di aprire una pagina web, quindi ho usato QWebView di QtWebKit.

Sulla mia macchina di sviluppo funziona bene, sia in esecuzione il codice direttamente e in esecuzione l'uscita di py2exe. Su una macchina "pulita" (senza Python e Qt non installato), l'uscita di py2exe non mostra la pagina web. Il resto dell'applicazione funziona bene e non c'è alcun incidente o eccezione, ma la QWebView appena rimane vuota.

Ho provato ad aprire un URL senza immagini o altre cose per evitare eventuali problemi legati ai plugin WebKit mancanti. Ho provato anche un semplice programma che si apre solo example.com su un QWebView e nient'altro, e, inoltre, non ha funzionato.

Qualcuno ha incontrato qualcosa di simile? Inoltre, qualcuno sa se QWebKit ha alcun tipo di dipendenze "meno documentati", che py2exe potrebbe prelevare nel "pacchetto"?

È stato utile?

Soluzione

Vorrei provare PyInstaller. Sembra funzionare bene durante la compilazione PyQT roba, come si annusa le dipendenze e li pacchetti di troppo (beh, sembra di farlo). Stavo facendo un'applicazione QT con Python troppo, e sputare fuori un singolo binario che ha lavorato destra fuori del blocco.

Ecco un link: http://www.pyinstaller.org/

In bocca al lupo!

Altri suggerimenti

Per chi avrà ancora qualche problema con esso, ci si va:

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

È necessario includere manualmente dalla parte py2exe:)

Prova questo nelle opzioni py2exe:

packages = ["PySide.QtNetwok"]

risposta scelta in realtà non rispondere alla domanda. Ho avuto un problema simile, i miei usi applicativi PySide e QtWebKit, sulla mia macchina dev funzionava bene, sulla macchina dell'utente dopo bundle con py2exe non ha fatto.

prima di tutto il vostro setup.py dovrebbe esplicitamente includere PySide.QtNetwork: link

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

dopo che si dovrebbe pacchetto OpenSSL DLL: collegamento

qui e get win32openssl (è possibile utilizzare la versione leggera) copiare libeay32.dll e ssleay32.dll alla cartella del progetto e aggiungere sia come come file di dati nel vostro setup.py in questo modo:

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

e, infine, è necessario aggiungere il supporto delle immagini: aggiungere i plugin per le immagini come file di dati, alla fine dovrebbe essere qualcosa di simile:

...
setup(data_files=[("imageformats", glob(r'C:\Python27\Lib\site-packages\PySide\plugins\*.*')),('', ['libeay32.dll','ssleay32.dll'])],
...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top