【问题标题】:Problem while building a PyQt script with py2exe (QtCore)使用 py2exe (QtCore) 构建 PyQt 脚本时出现问题
【发布时间】:2010-01-06 22:12:22
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: python pyqt py2exe


    【解决方案1】:

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

    py2exe_opciones = {'py2exe': {"includes":["sip"]}}
    script = [{"script":"pyqt.py"}]
    
    setup(windows=script,options=py2exe_opciones)
    

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

    Here 可以阅读更多内容。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这是一个例子

        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-11-28
          • 1970-01-01
          • 2011-02-20
          • 2020-06-02
          • 1970-01-01
          • 1970-01-01
          • 2017-09-01
          • 2023-01-19
          • 1970-01-01
          相关资源
          最近更新 更多