Python “;ValueError:需要多个值才能解包”;多处理

Python “;ValueError:需要多个值才能解包”;多处理,python,multiprocessing,Python,Multiprocessing,我有以下代码: def characterize_file(filename): try: # … return (filename, characterization) except Exception as e: print(filename) traceback.print_exc() raise e def write_characterization(args): # …

我有以下代码:

def characterize_file(filename):
    try:
        # …
        return (filename, characterization)
    except Exception as e:
        print(filename)
        traceback.print_exc()
        raise e

def write_characterization(args):
    # …
    p = multiprocessing.Pool(3)
    characterizations = p.imap(characterize_file, args)
    for (i, (filename, characterization)) in enumerate(characterizations):
        pass # …
有时,在没有任何其他输出的情况下,我会遇到此异常:

  File "/home/progval/etudes/ens/image/dm/venv/local/lib/python2.7/site-packages/mogulex/main.py", line 52, in write_characterization
    for (i, (filename, characterization)) in enumerate(characterizations):
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 659, in next
    raise value
ValueError: need more than 1 value to unpack

它从哪里来?try语句不应该捕获任何错误并打印出来吗?

尝试打印
enumerate(characterizations)
并查看返回了多少值。不过,上次修改后我忘了重新编译代码。该错误实际上来自于try:语句之前调用的某个函数。因此,您应该将其添加为答案。这可能发生在其他人身上。