Open fjfzzl opened 8 years ago
我也是遇到这个问题
我也是遇见这个问题
我也是
我也是遇见这个问题
我也是遇到这个问题,不知从哪里改起
同样。。。
同样遇到这个问题。。。
解决问题了。用threading代替multiprocessing 把这几行替换掉
import threading listenProcess = threading.Thread(target=self.listenMsgMode) listenProcess.start() listenProcess.join()
listenProcess.join() 这个可以注释掉
运行程序后,一开始都正常,到了后面就出现错误了,如下:
...........(前面很多正常提示就省去了) 2016-08-11 11:25:43 light root[896] DEBUG [_] 自动回复模式 ... 关闭 Traceback (most recent call last): File "D:/zl/python/WeixinBot-master/weixin.py", line 1084, in
Traceback (most recent call last):
File "", line 1, in
File "C:\Anaconda2\lib\multiprocessing\forking.py", line 381, in main
self = load(from_parent)
File "C:\Anaconda2\lib\pickle.py", line 1384, in load
webwx.start()
File "D:/zl/python/WeixinBot-master/weixin.py", line 30, in wrapper
return fn(_args)
File "D:/zl/python/WeixinBot-master/weixin.py", line 920, in start
listenProcess.start()
File "C:\Anaconda2\lib\multiprocessing\process.py", line 130, in start
return Unpickler(file).load()
File "C:\Anaconda2\lib\pickle.py", line 864, in load
self._popen = Popen(self)
File "C:\Anaconda2\lib\multiprocessing\forking.py", line 277, in init
dump(process_obj, to_child, HIGHEST_PROTOCOL)
File "C:\Anaconda2\lib\multiprocessing\forking.py", line 199, in dump
ForkingPickler(file, protocol).dump(obj)
File "C:\Anaconda2\lib\pickle.py", line 224, in dump
self.save(obj)
File "C:\Anaconda2\lib\pickle.py", line 331, in save
dispatchkey
File "C:\Anaconda2\lib\pickle.py", line 886, in load_eof
self.save_reduce(obj=obj, rv)
File "C:\Anaconda2\lib\pickle.py", line 425, in save_reduce
save(state)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
raise EOFError
EOFError
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\pickle.py", line 655, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Anaconda2\lib\pickle.py", line 687, in _batch_setitems
save(v)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\multiprocessing\forking.py", line 67, in dispatcher
self.save_reduce(obj=obj, rv)
File "C:\Anaconda2\lib\pickle.py", line 401, in save_reduce
save(args)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\pickle.py", line 554, in save_tuple
save(element)
File "C:\Anaconda2\lib\pickle.py", line 331, in save
self.save_reduce(obj=obj, rv)
File "C:\Anaconda2\lib\pickle.py", line 425, in save_reduce
save(state)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\pickle.py", line 655, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Anaconda2\lib\pickle.py", line 687, in _batch_setitems
save(v)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\pickle.py", line 731, in save_inst
save(stuff)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\pickle.py", line 655, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Anaconda2\lib\pickle.py", line 687, in _batch_setitems
save(v)
File "C:\Anaconda2\lib\pickle.py", line 331, in save
self.save_reduce(obj=obj, rv)
File "C:\Anaconda2\lib\pickle.py", line 425, in save_reduce
save(state)
File "C:\Anaconda2\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Anaconda2\lib\pickle.py", line 655, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Anaconda2\lib\pickle.py", line 687, in _batch_setitems
save(v)
File "C:\Anaconda2\lib\pickle.py", line 306, in save
rv = reduce(self.proto)
TypeError: can't pickle thread.lock objects
Process finished with exit code 1
请问是哪里出错了呢?