[issue9276] pickle should support methods

Ram Rachum report at bugs.python.org
Wed Mar 2 11:35:17 CET 2011


Ram Rachum <cool-rr at cool-rr.com> added the comment:

Amaury:

Your example succeeds on Linux but fails on Windows:

	$ python3.2 main.py
	CALLED
	Traceback (most recent call last):
	  File "C:\Python32\Lib\pickle.py", line 679, in save_global
		klass = getattr(mod, name)
	AttributeError: 'module' object has no attribute 'foo'

	During handling of the above exception, another exception occurred:

	Traceback (most recent call last):
	  File "main.py", line 7, in <module>
		p.start(); p.join()
	  File "C:\Python32\Lib\multiprocessing\process.py", line 130, in start
		self._popen = Popen(self)
	  File "C:\Python32\Lib\multiprocessing\forking.py", line 267, in __init__
		dump(process_obj, to_child, HIGHEST_PROTOCOL)
	  File "C:\Python32\Lib\multiprocessing\forking.py", line 190, in dump
		ForkingPickler(file, protocol).dump(obj)
	  File "C:\Python32\Lib\pickle.py", line 237, in dump
		self.save(obj)
	  File "C:\Python32\Lib\pickle.py", line 344, in save
		self.save_reduce(obj=obj, *rv)
	  File "C:\Python32\Lib\pickle.py", line 432, in save_reduce
		save(state)
	  File "C:\Python32\Lib\pickle.py", line 299, in save
		f(self, obj) # Call unbound method with explicit self
	  File "C:\Python32\Lib\pickle.py", line 623, in save_dict
		self._batch_setitems(obj.items())
	  File "C:\Python32\Lib\pickle.py", line 656, in _batch_setitems
		save(v)
	  File "C:\Python32\Lib\pickle.py", line 299, in save
		f(self, obj) # Call unbound method with explicit self
	  File "C:\Python32\Lib\pickle.py", line 683, in save_global
		(obj, module, name))
	_pickle.PicklingError: Can't pickle <function foo at 0x00C4EBB8>: it's not found as mod.foo

	User at TURING ~/Desktop/temp
	$ Traceback (most recent call last):
	  File "<string>", line 1, in <module>
	  File "C:\Python32\Lib\multiprocessing\forking.py", line 370, in main
		self = load(from_parent)
	EOFError

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9276>
_______________________________________


More information about the Python-bugs-list mailing list