[英]How to debug Python Multiprocessing pool.map() error (IndexError: string index out of range) without a stack trace?
在python中从multiprocessing lib使用pool.map()。 得到以下错误:
IndexError: string index out of range
是否可能来自超出范围的变量(列表)? 如果可以,我该如何调试? 没有说明错误发生的位置。
代码的更多说明:
(编辑)
def myFunction(list):
# function contents
for item in list:
# do tasks
with closing(Pool(processes=2)) as pool:
pool.map(myFunction, sublist)
pool.map(myFunction2, sublist2)
答案在于我对pool.map(func, iterable)
方法的误解。
先前的函数myFunction()
使用for循环在列表对象中循环。 在实现pool.map()
之后,我将该函数留在了函数中,因此由于for
循环,我精心准备的所有任务都将更进一步。
解决方案是删除for循环并调整一些代码使其更像这样的简单情况:
def myFunction(list):
# do tasks
# for loop contents....
如此简单得多,但是我没有意识到应该首先使用.map()
方法。 感谢@dano指出需要注意的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.