2010-07-06 3 views
1

Пожалуйста, помогите мне, я получаю MemoryError при попытке получить конкретное электронное письмо. Это сообщение об ошибке:MemoryError при использовании imaplib fetch

python(23838,0x1888c00) malloc: *** vm_allocate(size=3309568) failed (error code=3) 
python(23838,0x1888c00) malloc: *** error: can't allocate region 
python(23838,0x1888c00) malloc: *** set a breakpoint in szone_error to debug 
Exception in thread Thread-1:Traceback (most recent call last): 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/threading.py", line 442, in __bootstrap 
    self.run() 
    File "/Volumes/SvnDevDisk/branches/HaversackProject_Version_0.2/plugins/GaMailClientPlugin/python/imap/imap_reader.py", line 25, in run 
    self.readMailbox(eachMailbox) 
    File "/Volumes/SvnDevDisk/branches/HaversackProject_Version_0.2/plugins/GaMailClientPlugin/python/imap/imap_reader.py", line 58, in readMailbox 
    resp, content = _mailConnection.fetch(num, '(RFC822 FLAGS)') 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 417, in fetch 
    typ, dat = self._simple_command(name, message_set, message_parts) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 1004, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 830, in _command_complete 
    typ, data = self._get_tagged_response(tag) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 935, in _get_tagged_response 
    self._get_response() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 896, in _get_response 
    data = self.read(size) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/imaplib.py", line 231, in read 
    return self.file.read(size) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/socket.py", line 301, in read 
    data = self._sock.recv(recv_size) 
MemoryError 

И вот мой код:

resp, content = _mailConnection.fetch(num, '(RFC822 FLAGS)') 

Я использую Python 2.3.5

Спасибо заранее!

ответ

0

MemoryError обычно указывает на то, что в вашей системе закончилась свободная память. Возможно, ваш скрипт Python поддерживает ссылки на все сообщения, которые он видит, и общая сумма их слишком велика, чтобы вписаться в память?

+0

Я попытался получить конкретное сообщение, которое исчерпывает память, его размер составляет почти 5 МБ. Я довольно новичок в python, любые предложения о том, как я могу эффективно получать большие сообщения, особенно те, у которых большие вложения. Благодаря! – Chris

Смежные вопросы