Python论坛  - 讨论区

标题:[python-chinese] python的MySQLdb 的RuntimeError

2007年05月23日 星期三 09:24

xiaoyi tian purpen.w在gmail.com
星期三 五月 23 09:24:52 HKT 2007

File "build/bdist.freebsd-6.2-RELEASE-i386/egg/MySQLdb/connections.py", line
163, in __init__
RuntimeError: maximum recursion depth exceeded in cmp

ÎÒʹÓÃpython+mysql×öÒ»¸öÑ­»·»ñÈ¡Êý¾Ý£¨Ã¿¸ô1·ÖÖÓ»ñÈ¡Ò»´Î£©£¬¿ÉÿÌìÍíÉϳÌÐò¶¼»áËÀµô£¬¼ì²éÈÕÖ¾£¬³öÏÖÕâ¸ö´íÎ󣬲»ÖªµÀÔõÑù½â¾ö£¿

Ë­Åöµ½¹ý´ËÀà´íÎó£¬Ö¸µãһϣ¬¶àл£¡

-- 
ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070523/1fc910b6/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月23日 星期三 09:31

kevin kevin_woso在126.com
星期三 五月 23 09:31:34 HKT 2007

Leo Jay,您好!

	我是楼主
	谢谢大家回答,这个问题我已经明白了!Leo Jay说的方法不错!

    可是我一开始也没有讲清楚, 我是写的一个http代理,是否必须通过web server关闭连接来判断接收完毕?
现在这个代理暂时是这么做的.

    还有个问题请教一下,写的这个proxy,只是简单的解析http请求,由socket.gethostbyname()获取地址,然后向这个地址上转发请求.
调试发现,有的请求如果不通过proxy则能成功收到数据,而通过proxy收到的是access deny的拒绝应答.

    比如取www.sohu.com主页时就遇到有些图片取不到.

	上网也收到相关的问题,但是都没有解释,如果我没有说明白,请看这个http://www.linuxsir.org/bbs/showthread.php?t=293225
和我遇到的是相同的问题

    谢谢大家,如果需要我可以把代码贴出来


	

======= 2007-05-22 15:08:53 您在来信中写道:=======

>On 5/22/07, 麦田守望者 <qcxhome在gmail.com> wrote:
>> 当接收到的字节数小于传递给recv方法的缓冲区大小的时候,也能够说明数据已经接收完毕。
>
>不是的哦。收到的字节数小于缓冲区大小的时候,只是说明,暂时还没收到其它数据。不代表对方发送的数据都已经接收完毕了。
>
>所以我一开始的时候说,在每次通讯的最开始的4个字节写清楚
>这次通讯一共要接收多少个字节的数据。
>然后一直recv,直到收完所有指定的字节数为止。
>
>-- 
>Best Regards,
>Leo Jay
>_______________________________________________
>python-chinese
>Post: send python-chinese在lists.python.cn
>Subscribe: send subscribe to python-chinese-request在lists.python.cn
>Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
>Detail Info: http://python.cn/mailman/listinfo/python-chinese

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        kevin
        kevin_woso在126.com
          2007-05-23


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月23日 星期三 09:43

Zuggie zuggie.zhu在gmail.com
星期三 五月 23 09:43:53 HKT 2007

ÎÒÓÐÓÃß^PYTHON + SQL SERVER£¬³ö¬Fß^ß@˜ÓµÄ†–î}£¬ááíԇÁËÏ£¬°l¬FÔ­ÒòÊÇÿ´ÎˆÌÐÐÑ­­h•r£¬¶¼Ê¹ÓÃÒ»‚€ÐµÄßB½Ó£¬µ«ÊÇÅfµÄßB½ÓÈÔÈ»´æÔÚ



2007/5/23, xiaoyi tian <purpen.w在gmail.com>:
>
> File "build/bdist.freebsd-6.2-RELEASE-i386/egg/MySQLdb/connections.py",
> line 163, in __init__
> RuntimeError: maximum recursion depth exceeded in cmp
>
> ÎÒʹÓÃpython+mysql×öÒ»¸öÑ­»·»ñÈ¡Êý¾Ý£¨Ã¿¸ô1·ÖÖÓ»ñÈ¡Ò»´Î£©£¬¿ÉÿÌìÍíÉϳÌÐò¶¼»áËÀµô£¬¼ì²éÈÕÖ¾£¬³öÏÖÕâ¸ö´íÎ󣬲»ÖªµÀÔõÑù½â¾ö£¿
>
> Ë­Åöµ½¹ý´ËÀà´íÎó£¬Ö¸µãһϣ¬¶àл£¡
>
> --
> ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070523/55b1b271/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月23日 星期三 09:59

xiaoyi tian purpen.w在gmail.com
星期三 五月 23 09:59:47 HKT 2007

¾­¹ý¸ßÈËÖ¸µã½â¾öÁË£¬Ô­À´ÊǵݹéµÄÎÊÌ⣬pythonÖеݹéÓÐÒ»¶¨µÄÏÞÖÆ¡£

2007/5/23, Zuggie <zuggie.zhu在gmail.com>:
>
> ÎÒÓÐÓÃß^PYTHON + SQL SERVER£¬³ö¬Fß^ß@˜ÓµÄ†–î}£¬ááíԇÁËÏ£¬°l¬FÔ­ÒòÊÇÿ´ÎˆÌÐÐÑ­­h•r£¬¶¼Ê¹ÓÃÒ»‚€ÐµÄßB½Ó£¬µ«ÊÇÅfµÄßB½ÓÈÔÈ»´æÔÚ
>
>
>
> 2007/5/23, xiaoyi tian <purpen.w在gmail.com>:
> >
> > File "build/bdist.freebsd-6.2-RELEASE-i386/egg/MySQLdb/connections.py",
> > line 163, in __init__
> > RuntimeError: maximum recursion depth exceeded in cmp
> >
> > ÎÒʹÓÃpython+mysql×öÒ»¸öÑ­»·»ñÈ¡Êý¾Ý£¨Ã¿¸ô1·ÖÖÓ»ñÈ¡Ò»´Î£©£¬¿ÉÿÌìÍíÉϳÌÐò¶¼»áËÀµô£¬¼ì²éÈÕÖ¾£¬³öÏÖÕâ¸ö´íÎ󣬲»ÖªµÀÔõÑù½â¾ö£¿
> >
> > Ë­Åöµ½¹ý´ËÀà´íÎó£¬Ö¸µãһϣ¬¶àл£¡
> >
> > --
> > ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070523/1c0db883/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月23日 星期三 10:12

zuggie zuggie.zhu在gmail.com
星期三 五月 23 10:12:48 HKT 2007

¹²ÏíÒ»ÏÂÄãµÄ´ú´a¿´¿´

ÔÚ 2007/5/23£¬xiaoyi tian <purpen.w在gmail.com> ׫Œ‘£º
>
> ¾­¹ý¸ßÈËÖ¸µã½â¾öÁË£¬Ô­À´ÊǵݹéµÄÎÊÌ⣬pythonÖеݹéÓÐÒ»¶¨µÄÏÞÖÆ¡£
>
> 2007/5/23, Zuggie <zuggie.zhu在gmail.com>:
> >
> > ÎÒÓÐÓÃß^PYTHON + SQL SERVER£¬³ö¬Fß^ß@˜ÓµÄ†–î}£¬ááíԇÁËÏ£¬°l¬FÔ­ÒòÊÇÿ´ÎˆÌÐÐÑ­­h•r£¬¶¼Ê¹ÓÃÒ»‚€ÐµÄßB½Ó£¬µ«ÊÇÅfµÄßB½ÓÈÔÈ»´æÔÚ
> >
> >
> >
> > 2007/5/23, xiaoyi tian <purpen.w在gmail.com>:
> > >
> > > File "build/bdist.freebsd-6.2-RELEASE-i386/egg/MySQLdb/connections.py", line 163, in __init__
> > > RuntimeError: maximum recursion depth exceeded in cmp
> > >
> > > ÎÒʹÓÃpython+mysql×öÒ»¸öÑ­»·»ñÈ¡Êý¾Ý£¨Ã¿¸ô1·ÖÖÓ»ñÈ¡Ò»´Î£©£¬¿ÉÿÌìÍíÉϳÌÐò¶¼»áËÀµô£¬¼ì²éÈÕÖ¾£¬³öÏÖÕâ¸ö´íÎ󣬲»ÖªµÀÔõÑù½â¾ö£¿
> > >
> > > Ë­Åöµ½¹ý´ËÀà´íÎó£¬Ö¸µãһϣ¬¶àл£¡
> > >
> > > --
> > > ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese在lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request在lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request在lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
>
> --
> ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070523/e71d14f1/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月23日 星期三 10:29

李国鹏 liguopeng在tsinghua.org.cn
星期三 五月 23 10:29:56 HKT 2007

在接收HTTP响应时,遇到一个空行表示HEADER结束。
这时候可以解析所有的HEADER。

如果HEADER中有Content-Length字段,他所代表的就是BODY的长度。
可以根据这个长度读取BODY的内容。但是有例外。

对于普通的请求可以已关闭连接来判断,但是也有例外:
如果HEADER中有HTTP_CONNECTION: Keep-Alive,表示这个连接在这个响应之后并不会
关闭,所以不能根据这一点来判断BODY是否结束。

判断BODY的长度的方法:
1. 有些响应没有message-body,比如1xx, 204, 304以及任何对于 HEAD 请求的响应
2. 如果在HEADER中存在传输编码(Transfer-Encoding),而且它的值不等于
“indentity”的时候,通过使用“chuncked”传输编码来定义传输长度。
__除非__这个响应是通过关闭连接来结束message。
3. 如果Content-Length存在,就表示实体的长度和传输长度相同。如果HEADER中同时
包含Transfer-Encoding和Content-Length,应该忽略Content-Length。
4. 消息的media-type是“multipart/byteranges”,而且没有特别指定
“transfer-length”的时候,由self-delimiting(本身可以确定分割界限)的media
type定义传输长度,也就是message的长度。
限制:除非明确知道接受者可以解析,否则不能指定media-type。
5. 服务器关闭连接。

所以只要连接请求不用keep-alive方式,可以放心的根据连接关闭来判断接受完毕。
但是如果你必须处理这种情况,可能就要复杂很多:)

详细内容可以参考:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4


-----邮件原件-----
发件人: kevin [mailto:kevin_woso在126.com] 
发送时间: 2007年5月23日 9:32
收件人: python-chinese在lists.python.cn
主题: Re: [python-chinese] 请教recv的问题

Leo Jay,您好!

	我是楼主
	谢谢大家回答,这个问题我已经明白了!Leo Jay说的方法不错!

    可是我一开始也没有讲清楚, 我是写的一个http代理,是否必须通过web server关
闭连接来判断接收完毕?
现在这个代理暂时是这么做的.

    还有个问题请教一下,写的这个proxy,只是简单的解析http请求,由
socket.gethostbyname()获取地址,然后向这个地址上转发请求.
调试发现,有的请求如果不通过proxy则能成功收到数据,而通过proxy收到的是access
deny的拒绝应答.

    比如取www.sohu.com主页时就遇到有些图片取不到.

	上网也收到相关的问题,但是都没有解释,如果我没有说明白,请看这个
http://www.linuxsir.org/bbs/showthread.php?t=293225
和我遇到的是相同的问题

    谢谢大家,如果需要我可以把代码贴出来


	

======= 2007-05-22 15:08:53 您在来信中写道:=======

>On 5/22/07, 麦田守望者 <qcxhome在gmail.com> wrote:
>> 当接收到的字节数小于传递给recv方法的缓冲区大小的时候,也能够说明数据已经
接收完毕。
>
>不是的哦。收到的字节数小于缓冲区大小的时候,只是说明,暂时还没收到其它数
据。不代表对方发送的数据都已经接收完毕了。
>
>所以我一开始的时候说,在每次通讯的最开始的4个字节写清楚
>这次通讯一共要接收多少个字节的数据。
>然后一直recv,直到收完所有指定的字节数为止。
>
>-- 
>Best Regards,
>Leo Jay
>_______________________________________________
>python-chinese
>Post: send python-chinese在lists.python.cn
>Subscribe: send subscribe to python-chinese-request在lists.python.cn
>Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
>Detail Info: http://python.cn/mailman/listinfo/python-chinese

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        kevin
        kevin_woso在126.com
          2007-05-23


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年05月23日 星期三 10:50

Antediluvian petercui在gmail.com
星期三 五月 23 10:50:20 HKT 2007

¼òµ¥×ÖÃæ·­Ò룺cmpÖг¬³ö×î´óµÝ¹éÉî¶È¡£

On 5/23/07, xiaoyi tian <purpen.w at gmail.com> wrote:
>
> ¾­¹ý¸ßÈËÖ¸µã½â¾öÁË£¬Ô­À´ÊǵݹéµÄÎÊÌ⣬pythonÖеݹéÓÐÒ»¶¨µÄÏÞÖÆ¡£
>
> 2007/5/23, Zuggie <zuggie.zhu at gmail.com>:
> >
> > ÎÒÓÐÓÃß^PYTHON + SQL SERVER£¬³ö¬Fß^ß@˜ÓµÄ†–î}£¬ááíԇÁËÏ£¬°l¬FÔ­ÒòÊÇÿ´ÎˆÌÐÐÑ­­h•r£¬¶¼Ê¹ÓÃÒ»‚€ÐµÄßB½Ó£¬µ«ÊÇÅfµÄßB½ÓÈÔÈ»´æÔÚ
> >
> >
> >
> > 2007/5/23, xiaoyi tian <purpen.w at gmail.com>:
> > >
> > > File "build/bdist.freebsd-6.2-RELEASE-i386/egg/MySQLdb/connections.py", line 163, in __init__
> > > RuntimeError: maximum recursion depth exceeded in cmp
> > >
> > > ÎÒʹÓÃpython+mysql×öÒ»¸öÑ­»·»ñÈ¡Êý¾Ý£¨Ã¿¸ô1·ÖÖÓ»ñÈ¡Ò»´Î£©£¬¿ÉÿÌìÍíÉϳÌÐò¶¼»áËÀµô£¬¼ì²éÈÕÖ¾£¬³öÏÖÕâ¸ö´íÎ󣬲»ÖªµÀÔõÑù½â¾ö£¿
> > >
> > > Ë­Åöµ½¹ý´ËÀà´íÎó£¬Ö¸µãһϣ¬¶àл£¡
> > >
> > > --
> > > ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request at lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
>
>
>
> --
> ÈËÉú¾ÍÏñÒ»¸öÆ¿×Ó£¬¶øÉú»î¾ÍÊÇÆ¿×ÓÀïµÄË®¡£
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>



-- 
There are pretenders among us, geniuses with the ability to become anyone
they want to be.
Some birds aren't meant to be caged. Their feathers are just too bright. And
when they fly away, the part of you that knows it was a sin to lock them up
does rejoice.
Ò»ÉúÒ»´úһ˫ÈË£¬Õù½ÌÁ½´¦Ïú»ê¡£Ïà˼ÏàÍû²»ÏàÇ×£¬ÌìΪ˭´º£¿
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070523/70100f2e/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号