Параметр 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 внутри, который должен знать правильный контекст для правильной работы.

  • многострочный литерал работает в python2, но не в python3
  • Ошибка синтаксиса в библиотеке jinja 2
  • Обработка ошибок Unicode с помощью readlines Python 3 ()
  • Ошибка разрешения при установке pygame на python 3.5
  • Установка OpenCV 3 для Python 3 на Mac с использованием Homebrew и pyenv
  • TypeError: не все аргументы, преобразованные во время форматирования строки python
  • Создайте набор из списка, используя {}
  • Библиотека чтения Exif
  • Python - лучший язык программирования в мире.