Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调试时在pool.close()上引发异常,但在运行时没有引发异常_Python_Pycharm_Python Multiprocessing - Fatal编程技术网

Python 调试时在pool.close()上引发异常,但在运行时没有引发异常

Python 调试时在pool.close()上引发异常,但在运行时没有引发异常,python,pycharm,python-multiprocessing,Python,Pycharm,Python Multiprocessing,我认为在Python2.7中处理这个问题时没有遇到这个问题,但是在3.7中调试时,Python在调用pool.close()时抛出了一个异常。这是功能的相关部分: pool = multiprocessing.Pool(6) iterator = pool.imap_unordered(worker_func, worker_input) while True: try: t0, t1 = next(iterator) except multiprocessin

我认为在Python2.7中处理这个问题时没有遇到这个问题,但是在3.7中调试时,Python在调用
pool.close()
时抛出了一个异常。这是功能的相关部分:

pool = multiprocessing.Pool(6)
iterator = pool.imap_unordered(worker_func, worker_input)

while True:
    try:
        t0, t1 = next(iterator)
    except multiprocessing.TimeoutError:
        continue
    except StopIteration:
        break
    else:
        dbinserts1(t0)
        dbinserts2(t1)            

pool.close()
pool.join()
2to3
所做的唯一更改是将
iterator.next()重写为
next(iterator)
。该函数仅在调试时失败(在PyCharm中),否则将成功运行。这可能是堆栈跟踪中最相关的部分:

atexit中出错。\u运行\u退出功能:回溯(最近一次调用最后一次):
文件 “/usr/local/ceral/python/3.7.3/Frameworks/python.framework/Versions/3.7/lib/python3.7/multiprocessing/util.py”, 第322行,输入退出功能 p、 join()文件“/usr/local/ceral/python/3.7.3/Frameworks/python.framework/Versions/3.7/lib/python3.7/multiprocessing/process.py”, 第138行,加入 断言self.\u parent\u pid==os.getpid(),“只能加入子进程”
AssertionError:只能加入子进程


你用的是哪一个版本?这似乎在2019.1.2中通过

您是如何调试的?您正在使用python调试器吗?(pdb)@dm03514对不起,我给它贴上了PyCharm标签,但在问题中没有具体说明。更新。是的,这是几个小时前发布的,但它修复了它!