Использование QSWebKit PySide под Windows с py2exe - PullRequest
3 голосов
/ 07 января 2011

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 20 апреля 2011

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

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

Вам необходимо включить его вручную со стороны py2exe:)

2 голосов
/ 07 января 2011

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

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

Удачи!

1 голос
/ 20 февраля 2012

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

Прежде всего ваш setup.py должен явно включать PySide.QtNetwork: ссылка

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

после этого вам следует упаковать библиотеки openSSL: ссылка

иди сюда и получите 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'])],
...
1 голос
/ 30 апреля 2011

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

packages = ["PySide.QtNetwok"]
...