easy install

Ethan Furman ethan at stoneleaf.us
Sat Oct 10 09:53:39 EDT 2009


 >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~



More information about the Python-list mailing list