python – 多处理AttributeError模块对象没有属性’__path__’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 多处理AttributeError模块对象没有属性’__path__’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1904字,纯文字阅读大概需要3分钟。
内容图文
![python – 多处理AttributeError模块对象没有属性’__path__’](/upload/InfoBanner/zyjiaocheng/733/25ac3dbf1b6b4599848174bdcc2eeb62.jpg)
我有一个很长的脚本,最后需要运行一个函数到大型列表的所有项目,这需要很长时间,例如考虑:
input_a= [1,2,3,4] # a lengthy computation on some data
print('test.1') # for testing how the script runs
input_b= [5,6,7,8] # some other computation
print('test.2')
def input_analyzer(item_a): # analyzing item_a using input_a and input_b
return(item_a * input_a[0]*input_b[2])
from multiprocessing import Pool
def analyzer_final(input_list):
pool=Pool(7)
result=pool.map(input_analyzer, input_list)
return(result)
my_list= [10,20,30,40,1,2,2,3,4,5,6,7,8,9,90,1,2,3] # a huge list of inputs
if __name__=='__main__':
result_final=analyzer_final(my_list)
print(result_final)
return(result)
这些代码的输出,运行变化但是所有运行的共同点是整个脚本的几次运行,似乎通过将7分配为Pool,整个脚本将运行大约8次!
我不确定我是否有多处理的概念,但我认为它应该做的只是使用几个CPU运行函数’input_analyzer’而不是多次运行整个脚本.在我的真实代码的情况下,它如此之长,它给了我一个奇怪的错误:
没有使用多处理我运行这个代码就好了,我不知道我在这里做错了特别是错误“AttributeError模块对象没有属性’路径’”我感谢任何帮助.
解决方法:
from multiprocessing import Pool as ThreadPool
import requests
API_URL = 'http://example.com/api'
pool = ThreadPool(4) # Hint...
def foo(x):
params={'x': x}
r = requests.get(API_URL, params=params)
return r.json()
if __name__ == '__main__':
num_iter = [1,2,3,4,5]
out = pool.map(foo, num_iter)
print(out)
提示答案:这就是引发异常的原因.如果__name__ ==’__ main__’,则池定义在外面
固定…
from multiprocessing import Pool as ThreadPool
import requests
API_URL = 'http://example.com/api'
def foo(x):
params={'x': x}
r = requests.get(API_URL, params=params)
return r.json()
if __name__ == '__main__':
pool = ThreadPool(4) # Hint...
num_iter = [1,2,3,4,5]
out = pool.map(foo, num_iter)
print(out)
python文档也涉及这个场景:https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers
在使用multiprocessing.dummy时,我没有发现这是一个问题.
内容总结
以上是互联网集市为您收集整理的python – 多处理AttributeError模块对象没有属性’__path__’全部内容,希望文章能够帮你解决python – 多处理AttributeError模块对象没有属性’__path__’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。