3

我正在使用 PySide 和 Qt 在 Python 中制作应用程序,并且我需要打开一个网页,所以我使用了 QtWebKit 的 QWebView。

在我的开发机器上,它工作得很好,直接运行代码和运行 py2exe 的输出。在“干净”的机器上(没有安装 Python 和 Qt),py2exe 的输出不显示网页。应用程序的其余部分工作正常,没有崩溃或异常,但 QWebView 只是保持空白。

我尝试打开一个没有图像或其他内容的 URL,以防止与缺少 WebKit 插件相关的任何问题。我还尝试了一个简单的程序,它只在 QWebView 上打开 example.com 而没有别的,它也没有工作。

有没有人遇到过类似的事情?此外,任何人都知道 QWebKit 是否具有 py2exe 可能不会被拉入“包”的任何“记录较少的”依赖项?

4

4 回答 4

2

我会尝试 PyInstaller。在编译 PyQT 的东西时它似乎工作得很好,因为它嗅探依赖项并将它们打包(嗯,它似乎这样做)。我也在用 Python 制作一个 QT 应用程序,它输出了一个可以立即工作的二进制文件。

这是一个链接: http: //www.pyinstaller.org/

祝你好运!

于 2011-01-07T20:14:38.813 回答
2

对于仍然会遇到一些麻烦的人,您可以:

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

您需要从 py2exe 端手动包含它:)

于 2011-04-20T08:39:42.240 回答
1

在 py2exe 选项中试试这个:

packages = ["PySide.QtNetwok"]
于 2011-04-29T21:04:36.200 回答
1

选择的答案实际上并没有回答问题。我有一个类似的问题,我的应用程序使用 pyside 和 QtWebKit,在我的开发机器上运行良好,在与 py2exe 捆绑后的用户机器上没有。

首先你的 setup.py 应该明确包含 PySide.QtNetwork:链接

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

之后,您应该打包 openSSL DLL:链接

这里获取 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'])],
...
于 2012-02-19T21:15:23.527 回答