4

我在 Windows XP 上,我遇到了新的 Python 3.2 期货模块的问题。看来我无法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 回答