环境:python2.7
百度下,只有几个例子,有个说是某个函数被重新定义了,导致出问题。
我仔细看了下我的错误:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/eventlet-0.14.0-py2.7.egg/eventlet/hubs/hub.py", line 346, in fire_timers
timer()
File "/usr/local/lib/python2.7/dist-packages/eventlet-0.14.0-py2.7.egg/eventlet/hubs/timer.py", line 56, in __call__
cb(*args, **kw)
File "/usr/local/lib/python2.7/dist-packages/eventlet-0.14.0-py2.7.egg/eventlet/greenthread.py", line 194, in main
result = function(*args, **kwargs)
TypeError: 'tuple' object is not callable
然后通过一步步查询找到出错语句:
eventlet.spawn(utils.command(cmd))
在自定义的utils.command中,有调用subprocess.Popen和eventlet.sleep,可能是其中哪个出问题了
我因为对结果要求不高,直接将代码改为:
utils.command(cmd)
然后不再出错。
没有进一步查看原先的错处,个人考虑是某个函数重定义导致错误,不过网上也有代码不规范出错的
参考:
http://bbs.sjtu.edu.cn/bbscon?board=Script&file=M.1208745675.A
版权声明:本文为博主原创文章,未经博主允许不得转载。
解决Python2.7中'tuple'对象不可调用问题
本文记录了在使用Python2.7进行开发时遇到的一个错误:'tuple'对象不可调用。通过逐步排查,发现错误来源于eventlet.spawn调用中的utils.command函数,并给出了修改方案及可能的原因分析。
8482

被折叠的 条评论
为什么被折叠?



