multiprocessing.Queue() and missing sem_open

Оlе Ѕtrеісhеr ole-usenet-spam at gmx.net
Thu Feb 5 15:22:33 EST 2015


Hi,

I am just trying to prepare a package (astropy) for (Debian) Hurd. This
os lacks a sem_open() implementation. When I now try:

import multiprocessing
q = multiprocessing.Queue()

I get an ImportError with Python 2.7, but an AttributeError with Python
3.4. In the documentation of multiprocessing.Queue() I couldn't find any
hint that it would throw this exception.

I am now curious, that

1. this behaviour is not documented
2. it changed at some point, without documentation.

Why does it not return a NotImplementedError (this is what I would
expect if a function is not implemented by the OS)?

Can I be sure that the following works also in future?

try
    q = multiprocessing.Queue()
except (ImportError, AttributeError)
    # handle the case of missing sem_open

Or what is the correct way to catch a not working Queue caused by a
missing sem_open() implementation?

Best regards

Ole



More information about the Python-list mailing list