2010-07-06 3 views
1

특정 이메일을 가져 오려고 할 때 MemoryError가 발생합니다. 이 오류 메시지입니다 :imaplib 가져 오기를 사용할 때 MemoryError

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 

그리고 여기 내 코드입니다 : 내가 사전에 파이썬에게 2.3.5

감사를 사용하고

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

!

답변

0

일반적으로 MemoryError는 시스템의 사용 가능한 메모리가 부족함을 나타냅니다. 아마도 파이썬 스크립트는 보이는 모든 메시지에 대한 참조를 유지하고 있으며 그 합계가 너무 커서 메모리에 맞지 않을 수 있습니까?

+0

메모리를 소모하는 특정 메시지를 가져 오려고했습니다. 크기는 거의 5MB입니다. 필자는 파이썬에 상당히 익숙하지 않은데, 큰 메시지, 특히 큰 첨부 파일이있는 메시지를 효율적으로 가져올 수있는 방법에 대한 제안입니다. 감사! – Chris