Я пытаюсь обновить часть кода, и значение / функция инициализатора, используемая для многопроцессорной обработки. Poo () вызывает AttributeError при запуске. Я просмотрел документацию и стопку релевантных (i sh) результатов Google, но я не могу найти ничего, объясняющего, чем может и не может быть инициализатор, или каких-либо существенных деталей. о том, как его использовать. Как найти дополнительную информацию по этому вопросу?
РЕДАКТИРОВАТЬ: Код, пытающийся обновить это фрагмент кода из статьи Real Python о параллелизме .
import requests
import multiprocessing
import time
session = None
def set_global_session():
global session
if not session:
session = requests.Session()
def download_site(url):
with session.get(url) as response:
name = multiprocessing.current_process().name
print(f"{name}:Read {len(response.content)} from {url}")
def download_all_sites(sites):
with multiprocessing.Pool(initializer=set_global_session) as pool:
pool.map(download_site, sites)
if __name__ == "__main__":
sites = [
"https://www.jython.org",
"http://olympus.realpython.org/dice",
] * 80
start_time = time.time()
download_all_sites(sites)
duration = time.time() - start_time
print(f"Downloaded {len(sites)} in {duration} seconds")
Когда я запускаю его, он просто постоянно выдает «AttributeError: Не удается получить атрибут 'set_global_session' on».