Make IPython work with multiprocessing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
IPython |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Because the '.__module__' attribute of functions defined interactively in IPython is set to a virtual module non existant on the disk, distributing these functions with multiprocessing does not work:
resting ~ $ ipython
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
Type "copyright", "credits" or "license" for more information.
IPython 0.9.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: import multiprocessing as mp
In [2]: p = mp.Pool(2)
In [3]: def foo(x):
...: return 2*x
...:
In [4]: p.map(foo, range(4))
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/
self.run()
File "/usr/lib/
self.
File "build/
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin_
Changed in ipython: | |
importance: | Undecided → Medium |
status: | New → Confirmed |