Я пытаюсь распараллелить функцию, которая добавляет результаты в общий список, используя библиотеку многопроцессорной обработки, и продолжает выдавать следующую ошибку:
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()
Пожалуйста, дайте мне знать, если я смогу что-то уточнить