4

私はWindowsXPを使用していますが、新しいPython3.2futuresモジュールに問題があります。仕事ができないようですProcessPoolExecutor。セッションの例:

Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.  

>>> from concurrent import futures  
>>> executor = futures.ProcessPoolExecutor()  
>>> def pio(x):  
...     print("I AM HERE")  
...     return True  
...  
>>> fut = executor.submit(pio, 5)  
>>> Process Process-1:  
Traceback (most recent call last):  
File "C:\Python32\lib\multiprocessing\process.py", line 259, in _bootstrap  
  self.run()  
File "C:\Python32\lib\multiprocessing\process.py", line 114, in run  
  self._target(*self._args, **self._kwargs)  
File "C:\Python32\lib\concurrent\futures\process.py", line 133, in _process_worker  
  call_item = call_queue.get(block=True, timeout=0.1)
File "C:\Python32\lib\multiprocessing\queues.py", line 131, in get
res = self._recv()
AttributeError: 'module' object has no attribute 'pio'

>>> fut.running()
True

ここで何かがおかしいようです。

4

1 に答える 1

9

concurrent.futureモジュールがモジュールを使用することに注意する必要がありmultiprocessingます(特にを使用した場合ProcessPoolExecutor)。そのため、一部の機能はインタラクティブインタプリタでは機能しません。これについて詳しくは、こちらをご覧ください。

于 2011-02-27T17:35:40.267 に答える