Python poplib error_proto: 行太长
Python poplib error_proto: line too long
最近,在未更改 codes/libs 的情况下,我在从 hotmail 收件箱读取电子邮件 (poplib.retr) 时开始收到 python error_proto: line too long
错误。我正在使用 Python 版本 2.7.8。我知道很长的一行可能会导致此错误。但是有没有办法绕过这个或我需要安装的某个版本。谢谢你 advice/direction 任何人都可以给予。
这是回溯错误:
"/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 232, in retr\n return self._longcmd(\'RETR %s\' % which)\n',
' File "/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 167, in _longcmd\n return self._getlongresp()\n',
' File "/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 152, in _getlongresp\n line, o = self._getline()\n',
' File "/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 377, in _getline\n raise error_proto(\'line too long\')\n',
'error_proto: line too long\n'
你确定你没有更新吗poplib
?查看昨晚提交的最新 diff:
# Added:
...
# maximal line length when calling readline(). This is to prevent
# reading arbitrary length lines. RFC 1939 limits POP3 line length to
# 512 characters, including CRLF. We have selected 2048 just to be on
# the safe side.
_MAXLINE = 2048
...
# in_getline()...
if len(self.buffer) > _MAXLINE:
raise error_proto('line too long')
...它看起来与您的问题非常相似。
所以回滚到以前的版本应该就OK了
此处存在针对此问题的 python 错误报告:https://bugs.python.org/issue16041
我实施的解决方案如下:
import poplib
poplib._MAXLINE=20480
我认为这是一个更好的主意,而不是直接编辑 poplib.py 库文件。
伍迪
最近,在未更改 codes/libs 的情况下,我在从 hotmail 收件箱读取电子邮件 (poplib.retr) 时开始收到 python error_proto: line too long
错误。我正在使用 Python 版本 2.7.8。我知道很长的一行可能会导致此错误。但是有没有办法绕过这个或我需要安装的某个版本。谢谢你 advice/direction 任何人都可以给予。
这是回溯错误:
"/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 232, in retr\n return self._longcmd(\'RETR %s\' % which)\n',
' File "/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 167, in _longcmd\n return self._getlongresp()\n',
' File "/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 152, in _getlongresp\n line, o = self._getline()\n',
' File "/opt/rh/python27/root/usr/lib64/python2.7/poplib.py", line 377, in _getline\n raise error_proto(\'line too long\')\n',
'error_proto: line too long\n'
你确定你没有更新吗poplib
?查看昨晚提交的最新 diff:
# Added:
...
# maximal line length when calling readline(). This is to prevent
# reading arbitrary length lines. RFC 1939 limits POP3 line length to
# 512 characters, including CRLF. We have selected 2048 just to be on
# the safe side.
_MAXLINE = 2048
...
# in_getline()...
if len(self.buffer) > _MAXLINE:
raise error_proto('line too long')
...它看起来与您的问题非常相似。
所以回滚到以前的版本应该就OK了
此处存在针对此问题的 python 错误报告:https://bugs.python.org/issue16041
我实施的解决方案如下:
import poplib
poplib._MAXLINE=20480
我认为这是一个更好的主意,而不是直接编辑 poplib.py 库文件。
伍迪