【问题标题】:Getting "module 'imaplib' has no attribute 'IMAP4_SSL'" when using imaplib with cx_Freeze将 imaplib 与 cx_Freeze 一起使用时,获取“模块‘imaplib’没有属性‘IMAP4_SSL’”
【发布时间】:2019-09-15 10:43:57
【问题描述】:

我正在使用 imaplib 阅读一些电子邮件。此代码在 Pycharm 中正常工作。我使用 cx_Freeze 使该程序成为可执行程序,现在我收到一个错误,可追溯到 cx_Freeze 的 startup.py。我之前做过一个可执行文件,不是用imaplib,这种问题没有发生。

网上还有其他关于“模块 imaplib 没有属性 IMAP4_SSL”的帖子,但这些帖子并不能解决问题,并且可能与我的原因不同。该声明的其他原因涉及虚拟环境或与我的情况不同的事物。

完整的错误信息如下:

Traceback (most recent call last):
 File "C:\Users\Todd\Desktop\Python\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run module.run() 
 File "C:\Users\Todd\Desktop\Python\lib\site-packages\cx_Freeze\initscrips\Console.py", line 26, in run exec(code, m.__dict__)
 File "Main.py", line 18, in <module>
 File 'C:Users\Todd\Desktop\ForStemotics\EmailGetter.py", line 43, in GetEmails
  mail = imaplib.IMAP4_SSL("imap.gmail.com")
AttributeError: module 'imaplib' has no attribute 'IMAP4_SSL'

在 cmets 的 setup.py 中编辑:

from cx_Freeze import setup, Executable
setup(name = 'SARS', 
      version='0.1', 
      description = 'email automator', 
      executables = [Executable("Main.py")])

【问题讨论】:

  • 你也可以分享你的 setup.py 吗? (或任何你用来将它捆绑为可执行文件的东西)
  • 好的,这是我的 setup.py:第 1 行:from cx_Freeze import setup,可执行文件,下一行:setup(name = 'SARS', version='0.1', description = 'email automator' , executables = [Executable("Main.py")]),就是这样。
  • 请不要将代码放入 cmets。您可以点击 edit 链接更新您的帖子(例如添加更多信息)。这次我已经在你的 setup.py 中为你编辑了。
  • 好的,谢谢,我不知道我能做到。

标签: python python-3.x cx-freeze imaplib


【解决方案1】:

感谢所有贡献和查看的人。我已经解决了这个问题。经过一些试验,我将问题追溯到 ssl 模块。我找不到解决方法,但我找到了另一个解决方法。我从 python 3.7.1 升级到最新版本 3.7.3 并且问题停止了。我不知道为什么会这样,但如果其他人遇到我的问题或类似的问题,我会推荐这个尝试。

【讨论】:

    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 2019-10-10
    • 2011-08-21
    • 2018-03-09
    • 2017-06-30
    • 2011-04-16
    • 2021-02-24
    • 1970-01-01
    相关资源
    最近更新 更多