Тип Ошибка, выдаваемая во время многопроцессорной обработки при попытке добавить результаты в общий список - PullRequest
1 голос
/ 30 октября 2019

Я пытаюсь распараллелить функцию, которая добавляет результаты в общий список, используя библиотеку многопроцессорной обработки, и продолжает выдавать следующую ошибку:

TypeError: '<=' not supported between instances of 'ListProxy' and 'Int'

Я думаю, что часть отключаетсяme up - это добавление для добавления каждого результата в общий список. Если я уберу эту часть кода, скрипт будет работать нормально. Однако весь смысл в запуске этого скрипта состоит в том, чтобы добавить множество вещей в один список.

Поиск в Google говорит мне, что эта ошибка вызвана тем, что я «сравниваю последовательность с целым числом». Я понимаю, что говорит ошибка, но я не знаю, как ее интерпретировать с точки зрения многопроцессорной библиотеки

Я не уверен, что я делаю здесь неправильно. Может ли кто-нибудь указать мне правильное направление?

Ниже приведена упрощенная версия кода, который я пытаюсь использовать

import lasio
import glob 
from multiprocessing import Pool, Process, Manager


#generates a list of filepaths to be fed to the parralelization
wellfiles = []
for file in glob.glob(....filedierctory...//*):
    wellfiles.append(file)


def process_file(filepath,L):
    #read the file
    las = lasio.read(filepath)
    #extract the value I want from the file
    uwi = las.well[11].value
    #print the value
    print(uwi)
    #append the value to a shared list. THIS IS WHERE I THINK THINGS ARE FAILING
    L.append(uwi)


if __name__ == '__main__':
    with Manager() as manager:
        L = manager.list()
        p = Pool(5)
        p.map(process_file, wellfiles,L)
        p.join()

Пожалуйста, дайте мне знать, если я смогу что-то уточнить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...