Это только у меня или что-то не так с новым модулем Python Futures на Windows - PullRequest
4 голосов
/ 27 февраля 2011

Я нахожусь на Windows XP, и у меня есть проблемы с новым модулем Python 3.2 futures.Кажется, я не могу заставить 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

Похоже, что-то здесь не так со мной.Помогите!

1 Ответ

8 голосов
/ 27 февраля 2011

Вы должны знать, что модуль concurrent.future использует модуль многопроцессорный (особенно если вы использовали ProcessPoolExecutor), поэтому некоторые функции не будут работать в интерактивном интерпретатореПодробнее о Примечание здесь .

...