Re: [Python-es] python: core dumped.. ¿manejo de excepciones?

Chema Cortes pych3m4 en gmail.com
Mie Ago 15 19:43:27 CEST 2007


El 13/08/07, Claudio A. Quezada R. <claudio.quezada.r en gmail.com> escribió:

> Ahora, el asunto es que si yo "hecho a andar" el método, por primera
> vez, funciona de perillas. El error se produce a la segunda ocasión
> que lo llamo, en la que ya hay contenido en la grillaBiometria. Hay
> otros métodos para eliminar filas, eliminar el contenido de las
> celdas, uno para destruir el widget y varios más. Los he probado todos
> y en algún momento me dan problemas (especialmente si itero con 10000
> o 15000 individuos)... Entonces por lo que me he dado cuenta el asunto
> no es al llenar la grillaBiometria por primera vez, sino, al
> reemplazar el contenido, al destruirlo, o algo por el estilo en el
> setItem(row,column,item)...

Umm!! Entonces el asunto puede ser más chungo. Estás hablando de miles
de objetos que se crean y se destruyen. Es muy posible que no se haga
bien, que queden referencias a objetos inválidas, o que éstos nunca se
destruyan ocupando la memoria inútilmente.

Cuando creas una instancia en PyQt se crean tres objetos: el de C++
(qt), el wrapper de la librería SIP y el objeto python (pyqt). El
responsable de que todo funcione sincronizadamente es SIP; pero hay
reportados problemas como el que comentas, así que añade a tus tareas
el cambiar a otras versiones de pyqt y sip (prueba con versiones
anteriores a la que está usando).

De todos modos, haz la prueba de no destruir widgets en la segunda
llamada al método. Por ejemplo, no llames al .clearContents() a ver si
funciona ahora. Si lo hace, entonces el problema puede que no sea de
tu código.



Más información sobre la lista de distribución Python-es