Параметр ctx в многопроцессорной обработке.

Я пытаюсь использовать очередь из многопроцессорного модуля. Реализация ( https://docs.python.org/3.4/library/multiprocessing.html#exchanging-objects-between-processes ) использует

q = Queue() 

в качестве примера для создания экземпляра. Если я попробую это, я получаю следующую ошибку:

 TypeError: __init__() missing 1 required keyword-only argument: 'ctx' 

Проблема с поиском проблемы привела к этому:

http://bugs.python.org/issue21367

Как узнать, исправлено ли это? Невозможно ли использовать многопроцессорность? Если нет, как мне получить необходимый объект ctx (и что это такое?)

One Solution collect form web for “Параметр ctx в многопроцессорной обработке.”

Похоже, что вы не импортируете Queue непосредственно из multiprocessing . Когда были введены контексты, большинство объектов, которые вы импортировали из пакета multiprocessing верхнего уровня, стали функциями, которые внутренне получают контекст, а затем передают его в инициализатор базового класса, а не сами классы. Например, вот что такое multiprocessing.Queue сейчас:

 def Queue(self, maxsize=0): '''Returns a queue object''' from .queues import Queue return Queue(maxsize, ctx=self.get_context()) 

Если вы должны импортировать multiprocessing.queues.Queue напрямую и попытаться создать его, вы получите ошибку, которую видите. Но он должен работать нормально, если вы импортируете его из multiprocessing напрямую.

Объект context указывает на multiprocessing какой из доступных методов для запуска подпроцессов используется. multiprocessing.Queue использует multiprocessing.Lock внутри, который должен знать правильный контекст для правильной работы.

  • Python: данные против текста?
  • Как вычислить контрольную сумму md5 файла в Python?
  • Несколько ключей на стоимость
  • Как конвертировать 'из очереди импорта очереди, пустым' из Python 2 в Python 3?
  • Python Запрашивает получение («Соединение прервано»., BadStatusLine («'' ',)) error
  • Хотите прочитать с определенного смещения файла из Интернета с помощью Python3
  • Тест для поддержки как JSON, так и многофайлов файлов в DRF
  • OS X cmake не может найти PythonLibs 3.4
  • Что именно возвращает super () в Python 3?
  • Ошибка импорта Python: объект 'module' не имеет атрибута 'x'
  • Объединение нескольких фреймов данных с уникальными индексами
  • Python - лучший язык программирования в мире.