亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

解決python多線程報錯:AttributeError: Can't pickle local object問題

瀏覽:53日期:2022-07-30 17:16:50

報錯信息:

Traceback (most recent call last):File “D:/flaskProject/test.py”, line 35, in testpool.apply(self.out, args=(i,))File “Python37-32libmultiprocessingpool.py', line 261, in applyreturn self.apply_async(func, args, kwds).get()File 'libmultiprocessingpool.py”, line 657, in getraise self._valueFile “Python37-32libmultiprocessingpool.py', line 431, in _handle_tasksput(task)File 'Python37-32libmultiprocessingconnection.py”, line 206, in sendself._send_bytes(_ForkingPickler.dumps(obj))File “*Python37-32libmultiprocessingreduction.py”, line 51, in dumpscls(buf, protocol).dump(obj)TypeError: can’t pickle _thread._local objects

原類的構造函數:

class threadtest:def __init__(self, ipList, user, password): self.ipList = ipList self.httpAuth = HTTPDigestAuth(user, password) returndef out(self, i): url = 'http://' + i + '/name' response = requests.get(url, self.httpAuth) print(response.text) returndef test(self): pool = Pool(processes=2) for i in self.ipList: pool.apply(self.out, args=(i,)) pool.close() pool.join() return

if name == ‘main’:ipList = [‘192.168.2.1’, ‘192.168.2.2’, ‘192.168.2.3’, ‘192.168.2.4’, ‘192.168.2.5’, ]a = threadtest(ipList, ‘admin’, ‘admin’)a.test()

原因:

在class中對屬性進行初始化使用了其它類返回的句柄進行初始化導致,HTTPDigestAuth的返回值不能進行序列化,也就是不能作為cls(buf, protocol).dump(obj)的參數進行序列化。

將self.httpAuth = HTTPDigestAuth(httpUser, httpPassword)修改為:

self.httpUserself.httpPassword

并將函數HTTPDigestAuth放到類的方法中

修改后:

class threadtest:def __init__(self, ipList, user, password): self.ipList = ipList self.user = user self.password = password returndef out(self, i): url = 'http://' + i + '/name' response = requests.get(url, HTTPDigestAuth(self.user, self.password)) print(response.text) returndef test(self): pool = Pool(processes=2) for i in self.ipList: pool.apply(self.out, args=(i,)) pool.close() pool.join() return

if name == ‘main’:ipList = [‘192.168.2.1’, ‘192.168.2.2’, ‘192.168.2.3’, ‘192.168.2.4’, ‘192.168.2.5’, ]a = threadtest(ipList, ‘admin’, ‘admin’)a.test()

以上這篇解決python多線程報錯:AttributeError: Can’t pickle local object問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
主站蜘蛛池模板: 亚洲国产成人精品一区91 | 免费a级毛片大学生免费观看 | 2020年国产精品午夜福利在线观看 | 国产成人在线小视频 | 99久久99这里只有免费费精品 | 9i9精品国产免费久久 | 无遮挡啪啪成人免费网站 | 免费在线观看一级毛片 | 亚洲欧美日韩综合二区三区 | 欧美美女一区二区三区 | 亚洲精品午夜视频 | 欧美黄色大片在线观看 | 国产成人福利在线视老湿机 | 国产亚洲欧美日韩v在线 | 色牛网 | 午夜视频在线观看一区 | 国产欧美日韩免费 | 欧美精品blacked中文字幕 | 久久青草免费91线频观看不卡 | 国产一级一级一级成人毛片 | 国产精品网红女主播久久久 | 国产xxxx做受性欧美88 | 成人黄色一级毛片 | 午夜一级毛片 | 国产亚洲欧美视频 | 国产成人精品日本亚洲网址 | aaa一级毛片免费 | 亚洲欧美精品在线 | 色综合久久久久久 | 久久国产精品一区二区 | 日本性生活网站 | 欧美日韩国产一区二区三区欧 | 亚洲刺激视频 | 国产美女视频一区二区二三区 | 伊人影院中文字幕 | 欧美性猛交xxxx免费看蜜桃 | 狠狠色依依成人婷婷九月 | 国产一区二区三区在线观看影院 | 92手机看片福利永久国产 | 精品国产免费第一区二区三区日韩 | 日韩欧美在线综合 |