1

我正在尝试使用 pyqt 在 Windows 中制作一个简单的 hello-world 可执行 python gui 应用程序。所以我已经制作了pyqt.py文件

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()

我尝试将 py2exe 与以下setup.py脚本一起使用:

from py2exe.build_exe import py2exe
from distutils.core import setup

setup( console=[{"script": "pyqt.py"}] )

(我No module named sip首先遇到了错误,但感谢Py2exeAndPyQt页面解决了)。

现在我有了可执行文件,当我尝试运行它时,出现以下错误:

Traceback (most recent call last):
  File "pyqt.py", line 2, in <module>
  File "PyQt4\QtGui.pyc", line 12, in <module>
  File "PyQt4\QtGui.pyc", line 10, in __load
ImportError: No module named QtCore

我该如何解决?TIA

4

3 回答 3

3

你可以做这样的事情,你不需要 import *.

py2exe_opciones = {'py2exe': {"includes":["sip"]}}
script = [{"script":"pyqt.py"}]

setup(windows=script,options=py2exe_opciones)

现在该程序应该可以工作了。我有同样的错误。

这里可以阅读更多。

于 2010-01-07T18:20:50.213 回答
2

添加from PyQt4.QtCore import *到 pyqt.py。

我不确定为什么它没有自动包含,但我认为它与 QtCore 仅由 QtGui 使用有关,这是一个 C++ 库......就像,py2exe 只自动检测 python 依赖项......所以你必须手动导入它。

于 2010-01-06T22:40:45.980 回答
0

这是一个例子

from setuptools import setup
import py2exe
from glob import glob

SETUP_DICT = {
    'windows': [{
        'script': 'main.py',
    }],

    'zipfile': 'lib/library.zip',

    'data_files': (
        ('', glob(r'C:\Windows\SYSTEM32\msvcp100.dll')),
        ('', glob(r'C:\Windows\SYSTEM32\msvcr100.dll')),
    ),

    'options': {
        'py2exe': {
            'bundle_files': 3,
            'includes': ['sip', 'PyQt4.QtCore'],
        },
    }
}

setup(**SETUP_DICT)
于 2016-05-30T19:19:21.007 回答