[Python-de] multiprocessing ohne sem_open
Оlе Ѕtrеісhеr
ole-usenet-spam at gmx.net
Fr Feb 6 09:18:32 CET 2015
Mike Müller <mmueller at python-academy.de> writes:
> Am 05.02.15 um 21:04 schrieb Оlе Ѕtrеісhеr:
>> ole-usenet-spam at gmx.net (Оlе Ѕtrеісhеr) writes:
>>> bekomme ich unter Python2.7 einen ImportError. Wenn ich es unter
>>> Python3.4 mache, gibt es dagegen einen NotImplementedError.
>>
>> ... einen AttributeError, was tatsächlich völlig unverständlich ist.
>
> Schau mal nach ob du wirklich multiprocessing importiert hast.
Ja klar, habe ich. Das Paket wird identisch installiert auf einem
Dutzend Plattformen.
> Hinweis: Am Besten immer vollständige Tracebacks mitschicken und nicht
> nur den Namen der Fehlerklasse.
Das ist 3.4.2:
self = <multiprocessing.context.DefaultContext object at 0x1449b0c>, maxsize = 0
def Queue(self, maxsize=0):
'''Returns a queue object'''
from .queues import Queue
> return Queue(maxsize, ctx=self.get_context())
/usr/lib/python3.4/multiprocessing/context.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <multiprocessing.queues.Queue object at 0x511e8cc>, maxsize = 0
def __init__(self, maxsize=0, *, ctx):
if maxsize <= 0:
> maxsize = _multiprocessing.SemLock.SEM_VALUE_MAX
E AttributeError: 'module' object has no attribute 'SemLock'
/usr/lib/python3.4/multiprocessing/queues.py:38: AttributeError
und das ist 2.7.9:
maxsize = 0
def Queue(maxsize=0):
'''
Returns a queue object
'''
> from multiprocessing.queues import Queue
/usr/lib/python2.7/multiprocessing/__init__.py:217:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
__all__ = ['Queue', 'SimpleQueue', 'JoinableQueue']
import sys
import os
import threading
import collections
import time
import atexit
import weakref
from Queue import Empty, Full
import _multiprocessing
from multiprocessing import Pipe
> from multiprocessing.synchronize import Lock, BoundedSemaphore, Semaphore, Condition
/usr/lib/python2.7/multiprocessing/queues.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Condition', 'Event'
]
import threading
import os
import sys
from time import time as _time, sleep as _sleep
import _multiprocessing
from multiprocessing.process import current_process
from multiprocessing.util import Finalize, register_after_fork, debug
from multiprocessing.forking import assert_spawning, Popen
# Try to import the mp.synchronize module cleanly, if it fails
# raise ImportError for platforms lacking a working sem_open implementation.
# See issue 3770
try:
from _multiprocessing import SemLock
except (ImportError):
raise ImportError("This platform lacks a functioning sem_open" +
" implementation, therefore, the required" +
" synchronization primitives needed will not" +
> " function, see issue 3770.")
E ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.
/usr/lib/python2.7/multiprocessing/synchronize.py:59: ImportError
Beides direkt kopiert aus dem entsprechenden Unittest-Fehlerreport.
Mehr Informationen über die Mailingliste python-de