Ответ 1
Исключение Queue.Empty находится в модуле Queue, а не в классе multiprocessing.queues.Queue. Модуль многопроцессорности фактически использует класс Queue (module) Empty exception:
from multiprocessing import Queue
from Queue import Empty
q = Queue()
try:
q.get( False )
except Empty:
print "Queue was empty"
Если вы хотите быть очень явным и подробным, вы можете сделать это:
import multiprocessing
import Queue
q = multiprocessing.Queue()
try:
q.get( False )
execpt Queue.Empty:
print "Queue was empty"
Преимущество прежнего подхода, вероятно, является лучшей идеей, потому что есть только один объект Queue, о котором нужно беспокоиться, и вам не нужно задаваться вопросом, работаете ли вы с классом или модулем, как в моем втором примере.