easy install

Robert Kern robert.kern at gmail.com
Sat Oct 10 02:38:35 CEST 2009


On 2009-10-09 19:08 PM, David Robinow wrote:
> On Fri, Oct 9, 2009 at 5:02 PM, Ethan Furman<ethan at stoneleaf.us>  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~
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
> You can't save a workbook with no worksheets.
> Try:
> W = xlwt.Workbook()
> W.add_sheet('no-sheet')
> W.save('non-file')

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

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco




More information about the Python-list mailing list