繁体   English   中英

在Windows下使用PySide的QtWebKit和py2exe

[英]Using PySide's QtWebKit under Windows with py2exe

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

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

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

有没有人遇到类似的东西? 此外,任何人都知道QWebKit是否有任何类型的“文档较少”的依赖关系,py2exe可能不会进入“包”?

我会尝试PyInstaller。 它在编译PyQT时看起来效果很好,因为它会嗅探依赖关系并将它们打包(好吧,它似乎也是这样)。 我也用Python制作了一个QT应用程序,它吐出了一个可以立即使用的单个二进制文件。

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

祝好运!

对于那些仍然会遇到麻烦的人,你会去:

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

你需要从py2exe手动包含它:)

在py2exe选项中尝试这个:

packages = ["PySide.QtNetwok"]

选择的答案实际上没有回答这个问题。 我有一个类似的问题,我的应用程序使用pyside和QtWebKit,在我的开发机器上工作正常,在用户机器上与py2exe捆绑后没有。

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

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

之后你应该打包openSSL DLLs: 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'])],
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM