Мой код работал нормально, но когда я перезапустил свою систему и снова запустил ее, она выдает эту ошибку. Я не мог понять причину этого поведения.
Я искал другой вопрос с похожей ошибкой, но их проблема связана с любым пакетом, связанным с веб-сервисом, который в моем случае недопустим.
Traceback (most recent call last):
File "cli.py", line 76, in <module>
k=cli_obj.extract_resume_data()
File "cli.py", line 29, in extract_resume_data
return self.__extract_from_directory(args.directory)
File "cli.py", line 52, in __extract_from_directory
results = pool.map(resume_result_wrapper, resumes)
File "/anaconda3/envs/nlp/lib/python3.7/multiprocessing/pool.py", line 268, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/anaconda3/envs/nlp/lib/python3.7/multiprocessing/pool.py", line 657, in get
raise self._value
multiprocessing.pool.MaybeEncodingError: Error sending result: '<multiprocessing.pool.ExceptionWithTraceback object at 0x7f80bed62eb8>'. Reason: 'TypeError("cannot serialize '_io.BufferedReader' object")'
Мой код выглядит так:
import os
import argparse
from resume_parser.resume_parser import ResumeParser
import multiprocessing as mp
from urllib.request import Request, urlopen
import io
import json
def print_cyan(text):
print("\033[96m {}\033[00m" .format(text))
class ResumeParserCli(object):
def __init__(self):
self.__parser = argparse.ArgumentParser()
self.__parser.add_argument('-d', '--directory', help="directory containing all the resumes to be extracted")
return
def extract_resume_data(self):
args = self.__parser.parse_args()
if args.directory and not args.file:
return self.__extract_from_directory(args.directory)
else:
return 'Invalid option. Please provide a valid option.'
def __extract_from_file(self, file):
if os.path.exists(file):
# print_cyan('Extracting data from: {}'.format(file))
resume_parser = ResumeParser(file)
return [resume_parser.get_extracted_data()]
else:
return 'File not found. Please provide a valid file name.'
def __extract_from_directory(self, directory):
if os.path.exists(directory):
pool = mp.Pool(mp.cpu_count())
resumes = []
data = []
for root, directories, filenames in os.walk(directory):
for filename in filenames:
file = os.path.join(root, filename)
resumes.append(file)
results = pool.map(resume_result_wrapper, resumes)
pool.close()
pool.join()
return results
else:
return 'Directory not found. Please provide a valid directory.'
def resume_result_wrapper(resume):
# print_cyan('Extracting data from: {}'.format(resume))
parser = ResumeParser(resume)
return parser.get_extracted_data()
if __name__ == '__main__':
cli_obj = ResumeParserCli()
k=cli_obj.extract_resume_data()
Пожалуйста, помогите мне. Заранее спасибо