7

cx_freeze在 ubuntu 12.04 下使用。包的生成没有任何错误,但是当我尝试作为独立的包运行时,我收到以下错误:

    Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/initscripts /Console.py",
    line 27, in <module>
    exec code in m.__dict__
     m m   File "Setup_cx_freeze.py", line 3, in <module>
     File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/__init__.py",
     line 4, in <module>
     from cx_Freeze.dist import *
     File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/dist.py",
     line 3, in <module>
     import distutils.command.install
      File "/usr/lib/python2.7/distutils/command/install.py", line 21,   in          <module>
      from site import USER_BASE
      File "/usr/lib/python2.7/site.py", line 562, in <module>
      main()
      File "/usr/lib/python2.7/site.py", line 540, in main
      abs__file__()
      File "/usr/lib/python2.7/site.py", line 100, in abs__file__
     m.__file__ = os.path.abspath(m.__file__)
     File "/usr/lib/python2.7/email/__init__.py", line 79, in __getattr__
      __import__(self.__name__)
      ImportError: No module named image

我认为重点是最后一句话。"ImportError: No module named image."

应用程序在纯 python 环境中运行没有任何问题那么为什么在将其作为“冻结”包运行时会出现错误?生成冻结包时以某种方式引入了故障。

4

3 回答 3

2

我最终通过在 setup.py 脚本构建 exe 选项中明确包含包“email.mime”来解决此问题。

于 2014-10-30T08:46:38.807 回答
1

缺少“图像”只是问题的第一部分。尝试将此添加到您的代码中:

from email.mime.image import MIMEImage
from email.mime.audio import MIMEAudio
from email.mime.message import MIMEMessage

这解决了“图像”、“音频”和“消息”的问题。

于 2014-12-06T00:49:20.653 回答
-1

通过安装 Python Imaging Library 解决了这个问题:http: //www.pythonware.com/products/pil/

1)python setup.py build

2)sudo python setup.py install

于 2013-08-30T16:09:47.823 回答