【问题标题】:memoryerror on python imaplib when fetching an email获取电子邮件时python imaplib上的内存错误
【发布时间】:2020-01-29 03:23:46
【问题描述】:

在 ubuntu 服务器上使用 Python 2.7.15+,这是我的代码

piece, messrow = imap.uid('fetch',id,'(RFC822)')
email_message = email.message_from_string(messrow[0][1])

错误

File "/var/www/mail.py", line 91, in <module>
    email_message = email.message_from_string(messrow[0][1])
  File "/usr/lib/python2.7/email/__init__.py", line 56, in message_from_string
    from email.parser import Parser
  File "/usr/lib/python2.7/email/parser.py", line 12, in <module>
    from email.feedparser import FeedParser
  File "/usr/lib/python2.7/email/feedparser.py", line 27, in <module>
    from email import message
  File "/usr/lib/python2.7/email/message.py", line 16, in <module>
    import email.charset
  File "/usr/lib/python2.7/email/charset.py", line 13, in <module>
    import email.base64mime
  File "/usr/lib/python2.7/email/base64mime.py", line 40, in <module>
    from email.utils import fix_eols
  File "/usr/lib/python2.7/email/utils.py", line 32, in <module>
    from email._parseaddr import quote
MemoryError

小消息也会发生这种情况。 机器有4G内存,我知道python除了可用机器内存之外没有内存限制。

有没有办法解决这个问题?

【问题讨论】:

  • 请注意,“可用机器内存”与所有其他进程共享,从所有操作系统内容开始。此外,您的系统不一定允许您(或更确切地说是“运行此代码的用户帐户”)使用那么多内存(这可以通过 ulimits 或类似工具来限制)。最后,两行代码并不能很好地说明上下文 - 您可能只是构建了一个巨大的列表或字典或之前已经吃掉所有内存的任何东西。

标签: python python-2.7


【解决方案1】:

是的,我通过增加机器内存解决了这个问题:)

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 2012-10-24
    • 2017-04-04
    • 2015-04-29
    • 2015-04-17
    • 2011-01-14
    • 1970-01-01
    • 2014-10-03
    • 2021-11-01
    相关资源
    最近更新 更多