1

特定のメールを取得しようとすると、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

そして、ここに私のコードがあります:

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

私はpython 2.3.5を使用しています

前もって感謝します!

4

2 に答える 2

0

通常、MemoryError は、システムの空きメモリが不足していることを示します。おそらく、あなたの Python スクリプトは、表示されたすべてのメッセージへの参照を保持していて、それらの合計が大きすぎてメモリに収まらないのではないでしょうか?

于 2010-07-10T14:44:52.830 に答える
0

http://bugs.python.org/issue1092502

a_lauer によって提案された修正は、私の問題を修正したようです。

于 2010-07-12T03:12:28.780 に答える