>Ethan Furman wrote: >> A puzzlement: >> >> I used easy_install the other day to get xlutils on my system. It >> automatically installed xlrd and xlwt as well. This is cool. What's >> not so cool are my tracebacks. E.g. >> >> Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit >> (Intel)] on win32 >> Type "help", "copyright", "credits" or "license" for more >> information. >> --> import xlwt >> --> xlwt.__name__ >> 'xlwt' >> --> xlwt.__file__ >> 'C:\\Python25\\lib\\site-packages\\xlwt-0.7.2-py2.5-win32.egg\\xlwt >> \\__init__.pyc' >> >> --> xlwt.Workbook().save('non-file') >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> File >> "c:\docume~1\ethanf\locals~1\temp\easy_install-q1s1rb\ >> xlwt-0.7.2-py2.5-win32.egg.tmp\xlwt\Workbook.py", >> line 634, in save >> File >> "c:\docume~1\ethanf\locals~1\temp\easy_install-q1s1rb\ >> xlwt-0.7.2-py2.5-win32.egg.tmp\xlwt\Workbook.py", >> line 615, in get_biff_data >> IndexError: list index out of range >> --> >> >> Anyone know why that is? >> >> ~Ethan~
Robert Kern: > I think he's asking why the exception message does not have the source > lines in the traceback, like exceptions inside regularly installed > packages. > > The answer is that once files are zipped, like the egg that you have > installed, the traceback printing function in C does not know how to > get at the source files any more. The traceback printing function in > the pure Python traceback module does, though. Try this: > >--> import sys >--> import traceback >--> sys.excepthook = traceback.print_exception > Gabriel Genellina: > Delete all the .pyc files and let Python regenerate them (or use the > compileall module). Code objects (stored in the .pyc files) carry > their source file name with them. Awesome! Many thanks! ~Ethan~ -- http://mail.python.org/mailman/listinfo/python-list