Многопроцессорный пул выдает AttibuteError - PullRequest
0 голосов
/ 19 марта 2020

image_url - это список, полученный из данных запроса.

image_url = request_data["data"]["image_url"]
input_list = []
for url in image_url:
    input_list.append((url,request_data))
pool = Pool(processes=2)
result = pool.map(self.get_image_attributes,input_list)

get_image_attribute выполняет некоторую операцию с изображением и возвращает результат.

@catch_exceptions
def get_image_attributes(self,image_url,request_data):
    image = self.load_image(image_url)
    if image:
        google_vision_url = 'https://vision.googleapis.com/v1/images:annotate?key=......'
        request_json = self.create_google_vision_req_format(image_url)
        google_response = requests.post(google_vision_url, json = request_json, timeout=10.0).json()
        response_data = {
            "status":True,
            "data":{
                "color":Colors.get_colors(google_response),
                "safe_image":SafeImage.get_safe_image(google_response),
                "labels":LabelNames.get_label_names(google_response),
                "blur":CheckBlur.check_blurness(request_data["data"])
            }
        }
    else:
        response_data = {
        "status":False,
        "message":"Image url is not valid",
        "error_obj":{
            "description":"image_url is not valid",
            "error_code":"INVALID_FIELD_IS_GIVEN"
        }
    }
    return response_data

Но во время выполнения я получаю эту ошибку.

AttributeError: 'Optimizer' object has no attribute 'wrapped_function'

Process ForkPoolWorker-1: Process ForkPoolWorker-2: Traceback (most recent call last): File "/usr/lib/python3.6/multiprocessing/process.py", 
line 258, in _bootstrap self.run() File "/usr/lib/python3.6/multiprocessing/process.py", 
line 93, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3.6/multiprocessing/pool.py", 
line 108, in worker task = get() File "/usr/lib/python3.6/multiprocessing/queues.py", 
line 337, in get return _ForkingPickler.loads(res) 
AttributeError: 'Optimizer' object has no attribute 'wrapped_function

Почему происходит эта ошибка? в коде нет объекта «Оптимизатор».

...