Использование PySide QtWebKit под Windows с py2exe

Я делаю приложение на Python с помощью PySide и Qt, и мне нужно открыть веб-страницу, поэтому я использовал QWebWeb QtWebKit.

На моей машине разработки она работает просто отлично, оба запускают код напрямую и запускают вывод py2exe. На «чистой» машине (без Python и без Qt) выход py2exe не показывает веб-страницу. Остальная часть приложения работает нормально и нет сбоя или исключения, но QWebView просто остается пустым.

Я попытался открыть URL-адрес без изображений или других материалов, чтобы предотвратить любые проблемы, связанные с отсутствием плагинов WebKit. Я также попробовал простую программу, которая просто открывает example.com в QWebView и ничего больше, и она также не работает.

Кто-нибудь сталкивался с чем-то похожим? Кроме того, кто-нибудь знает, имеет ли QWebKit какие-либо «менее документированные» зависимости, которые py2exe может не втягивать в «пакет»?

Я бы попробовал PyInstaller. Кажется, что он хорошо работает при компиляции материала PyQT, поскольку он обнюхивает зависимости и упаковывает их тоже (ну, похоже, это так). Я тоже делал приложение QT с Python, и он выплюнул один бинарный файл, который работал сразу.

Вот ссылка: http://www.pyinstaller.org/

Удачи!

Для тех, у кого все еще есть проблемы с этим, вы идете:

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

Вы должны включить его вручную с py2exe стороны 🙂

Попробуйте это в вариантах py2exe:

packages = ["PySide.QtNetwok"] 

выбранный ответ на самом деле не отвечает на вопрос. У меня была аналогичная проблема, мое приложение использует pyside и QtWebKit, на моей машине Dev работало нормально, на пользовательском компьютере после того, как в комплекте с py2exe этого не было.

в первую очередь ваш setup.py должен явно включать PySide.QtNetwork: link

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

после этого вы должны упаковать DLL OpenSSL: link

перейдите сюда и получите win32openssl (вы можете использовать легкую версию) скопируйте файлы libeay32.dll и ssleay32.dll в свою папку проекта и добавьте оба файла данных в файл setup.py следующим образом:

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

и, наконец, вам нужно добавить поддержку изображений: добавьте плагины изображений в файлы данных, в конце это должно быть примерно так:

 ... setup(data_files=[("imageformats", glob(r'C:\Python27\Lib\site-packages\PySide\plugins\*.*')),('', ['libeay32.dll','ssleay32.dll'])], ...