首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在Windows7上打包PyQt4应用程序时出错

尝试在Windows7上打包PyQt4应用程序时出错
EN

Stack Overflow用户
提问于 2014-04-03 18:11:01
回答 2查看 793关注 0票数 0

我正在尝试在Windows上打包一个PyQt4应用程序。我尝试过使用cx_freeze和py2exe。但是,在使用cx_freeze时,当我尝试运行生成的可执行文件时,我得到了以下错误:

代码语言:javascript
复制
ImportError: No module named image

即使安装了PIL,也会出现这种情况。

当我使用py2exe时,我得到以下错误:

代码语言:javascript
复制
ImportError: No module named PyQt4

以下是cx_freeze的设置文件:

代码语言:javascript
复制
from cx_Freeze import setup, Executable

includes = ["sip","requests","PyQt4","PIL"] 
exe = Executable(
    script="trial.py",
    base="Win32GUI"
    )

setup(
    options = {"build_exe": {"includes":includes}},
    executables = [exe],
    data_files = [
        ('phonon_backend', [
            'C:\Python27\Lib\site-packages\PyQt4\plugins\phonon_backend\phonon_ds94.dll'
            ]),
        ('imageplugins', [
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qgif4.dll',
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qjpeg4.dll',
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qsvg4.dll',
        ]),
]
    )

下面是py2exe的设置文件:

代码语言:javascript
复制
from distutils.core import setup
import py2exe


setup(windows=['trial.py'],
      options={
      'py2exe': {
          "dll_excludes": [
              "MSVCP90.dll",
              "MSWSOCK.dll",
              "mswsock.dll",
              "powrprof.dll",
              ],

          'includes': [
              'sip',
              'PyQt4',
              ],
      }
  },
data_files = [
        ('phonon_backend', [
            'C:\Python27\Lib\site-packages\PyQt4\plugins\phonon_backend\phonon_ds94.dll'
            ]),
        ('imageplugins', [
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qgif4.dll',
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qjpeg4.dll',
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qsvg4.dll',
        ]),
],

)

下面是我在脚本中的导入:

代码语言:javascript
复制
from PyQt4 import QtCore, uic
from PyQt4 import QtGui

我怎样才能摆脱这些错误?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-04 00:33:46

尽管不完全是你想要的答案,但坦率地说,我建议你尽可能使用PyInstaller。我发现它比py2exe和cx_Freeze工作得更好,它是主动维护的,并且它包括对PyQt4的自动支持。

票数 1
EN

Stack Overflow用户

发布于 2014-04-03 21:12:45

尝尝这个

代码语言:javascript
复制
from distutils.core import setup
import py2exe


setup(windows=['trial.py'],
      options={
      'py2exe': {
          "dll_excludes": [
              "MSVCP90.dll",
              "MSWSOCK.dll",
              "mswsock.dll",
              "powrprof.dll",
              ],

          'includes': [
              'sip',
              'PyQt4.QtCore',
              'PyQt4.QtGui',
              ],
      }
  },
data_files = [
        ('phonon_backend', [
            'C:\Python27\Lib\site-packages\PyQt4\plugins\phonon_backend\phonon_ds94.dll'
            ]),
        ('imageplugins', [
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qgif4.dll',
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qjpeg4.dll',
        'c:\Python27\lib\site-packages\PyQt4\plugins\imageformats\qsvg4.dll',
        ]),
],

)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22834407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档