我正在使用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 DLL: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'])],
...
您可以查看以下包https://nuitka.net/ PySide6 开发人员推荐它来捆绑基于 PySide 的应用程序