我是新来的
python和在地图上工作减少问题与肉酱.运行mincemeat脚本时出现以下错误.
$python mincemeat.py -p changeme localhost error: uncaptured python exception,closing channel <__main__.Client connected at 0x923fdcc> (<type 'exceptions.NameError'>:global name 're' is not defined [/usr/lib/python2.7/asyncore.py|read|79] [/usr/lib/python2.7/asyncore.py|handle_read_event|438] [/usr/lib/python2.7/asynchat.py|handle_read|140] [mincemeat.py|found_terminator|96] [mincemeat.py|process_command|194] [mincemeat.py|call_mapfn|170] [raw1.py|mapfn|43])
我的代码放在raw1.py脚本中,在上面的stacktrace中给出了[raw1.py | mapfn | 43].
import re import mincemeat # ... allStopWords = {'about':1,'above':1,'after':1,'again':1} def mapfn(fname,fcont): # ... for item in tList[1].split(): word = re.sub(r'[^\w]',' ',item).lower().strip() # ERROR if (word not in allStopWords) and (len(word) > 1): # ....
解决方法
您需要在mapfn中具有import语句. mapfn在不同的python进程中执行,因此它无法访问它被声明的原始上下文(包括导入).