[issue4223] inspect.getsource doesn't work on functions imported from a zipfile
Jean-Paul Calderone
report at bugs.python.org
Tue Oct 28 22:59:40 CET 2008
Jean-Paul Calderone <exarkun at divmod.com> added the comment:
Here is a transcript for a complete, self-contained, minimal reproduction:
exarkun at charm:~$ cd /tmp
exarkun at charm:/tmp$ mkdir zipimportbugexample
exarkun at charm:/tmp$ cd zipimportbugexample/
exarkun at charm:/tmp/zipimportbugexample$ mkdir foobar
exarkun at charm:/tmp/zipimportbugexample$ echo "def foo(): pass" >
foobar/__init__.py
exarkun at charm:/tmp/zipimportbugexample$ zip foobar.zip foobar
adding: foobar/ (stored 0%)
exarkun at charm:/tmp/zipimportbugexample$ zip foobar.zip foobar/__init__.py
adding: foobar/__init__.py (stored 0%)
exarkun at charm:/tmp/zipimportbugexample$ rm -r foobar
exarkun at charm:/tmp/zipimportbugexample$ mkdir workingdirectory
exarkun at charm:/tmp/zipimportbugexample$ cd workingdirectory/
exarkun at charm:/tmp/zipimportbugexample/workingdirectory$ python
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append('/tmp/zipimportbugexample/foobar.zip')
>>> import foobar, inspect
>>> inspect.getsource(foobar.foo)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/inspect.py", line 629, in getsource
lines, lnum = getsourcelines(object)
File "/usr/lib/python2.5/inspect.py", line 618, in getsourcelines
lines, lnum = findsource(object)
File "/usr/lib/python2.5/inspect.py", line 468, in findsource
raise IOError('could not get source code')
IOError: could not get source code
>>>
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4223>
_______________________________________
More information about the Python-bugs-list
mailing list