gpt4 book ai didi

python - PyQT/Windows/Pyinstaller (exe) - 名称错误 : global name 'QtGui' is not defined

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:09 33 4
gpt4 key购买 nike

我在尝试使用 pyinstaller 将 python 代码转换为可执行文件时遇到问题。我正在使用 PyQT 4.9.1 和 Python 2.7。

当我尝试构建它(Build.py)时收到错误:

Traceback (most recent call last):
File "Build.py", line 1494, in <module>
main(args[0], configfilename=opts.configfile)
File "Build.py", line 1472, in main
build(specfile)
File "Build.py", line 1429, in build
execfile(spec)
File "c:\projects\vibot\vibotUI_07.py", line 270, in <module>
window = viUI()
File "c:\projects\vibot\vibotUI_07.py", line 9, in __init__
QtGui.QMainWindow.__init__(self)
NameError: global name 'QtGui' is not defined

我搜索过谷歌,所有的解决方案都是基于纠正模块的不正确导入,但我一开始就已经正确地做到了。

这是我的代码的裁剪版本:

#!/usr/bin/env python

import sys
import os
from PyQt4 import QtCore, QtGui

class viUI(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setWindowTitle('test')
self.setObjectName('viMainWindow')
self.resize(400, 600)

self.show()

app = QtGui.QApplication(sys.argv)
window = viUI()
sys.exit(app.exec_())

这是 Makespec.py 文件:

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'c:\\projects\\vibot\\vibotUI_07.py'],
pathex=['c:\\Python\\pyinstaller-1.5.1\\pyinstaller-1.5.1'])
pyz = PYZ(a.pure)
exe = EXE( pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'vibotUI_07.exe'),
debug=False,
strip=False,
upx=True,
console=True )

最佳答案

在我看来,您正在调用 Build.py 并将脚本作为参数传递。我刚刚对此进行了测试,看看会发生什么,并得到了与您发布的相同的输出。

使用当前稳定的 PyInstaller (1.5.1),您需要 create a spec file first 。使用脚本作为参数运行 MakeSpec.py,而不是 Build.py。这将创建一个 .spec 文件,然后将其发送到 Build.py。

该文档显示了您可以传递给 MakeSpec 的选项,例如在 Windows 下设置图标和设置部署选项。这些选项都进入了spec文件,这样当你需要重建你的应用程序时,你只需要再次调用Build.py即可。

关于python - PyQT/Windows/Pyinstaller (exe) - 名称错误 : global name 'QtGui' is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004516/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com