0

在我将一个 QWebView 元素添加到窗口之前,我的 cx_freeze 构建工作正常。这意味着我应该导入 QtWebKit,对吗?在 Linux 上一切正常。在 Windows 上,如果我运行 main.py 文件,一切正常。

如果我将其冻结为 .exe,这就是我得到的错误。这是我的 install.py 文件:

from cx_Freeze import setup, Executable

includes=["re","PyQt4.QtWebKit"]

exe = Executable(
    script="main.pyw",
    base="Win32GUI",
    targetName = "LEX.exe"
    )

setup(
    name = "blabla",
    version = "1.3",
    description = "My application",
    options = {"build_exe": {"includes":includes}},
    executables = [exe]
    )

我在 x64 Windows 7 上构建它,但使用 x86 版本的 PyQt4 和 Python3.2 x86。在那个 QWebView 元素之前完全没有问题。

4

2 回答 2

4

升级到 cx_freeze 4.3 并编辑导入就可以了。导入现在是这样的:

from PyQt4.QtNetwork import *
from PyQt4.QtWebKit import QWebView,QWebPage
于 2012-08-12T12:41:09.710 回答
1

您不应该仅仅为了让 cx_Freeze 识别依赖关系而添加导入(并可能污染您的命名空间)。
而是像使用 PyQt4.QtWebKit 一样将 PyQt4.QtNetwork 添加到“包含”列表中。
您还可以使用“包”选项包含包的所有模块。也就是说,“包”用于整个包,“包含”用于模块。

于 2013-02-10T17:00:00.997 回答