我的cx_freeze构建工作正常,直到我在窗口中添加了一个QWebView元素。这意味着我应该导入QtWebKit,对吧?在Linux上一切都很完美。在Windows上,如果我运行main.py文件,一切都很完美。
如果我将其冻结为.exe,则为error I get。这是我的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元素之前没有任何问题。
答案 0 :(得分:4)
升级到cx_freeze 4.3并编辑导入就可以了。进口现在是这样的:
from PyQt4.QtNetwork import *
from PyQt4.QtWebKit import QWebView,QWebPage
答案 1 :(得分:1)
您不应该只是为了让cx_Freeze识别出依赖关系而添加导入(并可能污染您的命名空间)。
而是像使用PyQt4.QtWebKit一样将PyQt4.QtNetwork添加到“包含”列表中。
您还可以使用“packages”选项包括程序包的所有模块。也就是说,“包”用于整个包,“包含”用于模块。