Я получил
AttributeError: '_MainProcess' object has no attribute '_exiting'
из приложения Python. К сожалению, этот код должен запускать Python 2.5 и, следовательно, модуль обработки
, ныне известный как multiprocessing
. Я создавал процесс
с очередью
и помещал
элемент в очередь из основного процесса. Заглянув в код processing.queue
, я вижу, что запущен поток подачи. Затем этот питающий поток проверит currentProcess () ._ exiting
, но currentProcess ()
оценивается как _MainProcess
, который не имеет указанного атрибута, как можно увидеть в Модуль processing.process
. Как это решить? Это ошибка в обработке
? Если да, могу я просто исправить его, используя currentProcess () ._ exiting = False
?
Минимальный пример:
#!/usr/bin/python
import processing
import processing.queue
class Worker(processing.Process):
def __init__(self):
processing.Process.__init__(self)
self.queue = processing.queue.Queue()
def run(self):
element = self.queue.get()
print element
if __name__ == '__main__':
w = Worker()
w.start()
# To trigger the problem, any non-pickleable object is to be passed here.
w.queue.put(lambda x: 1)
w.join()