Apostaría que el error está en alguna c-api, pero no sabría decirte más.... puedes probar con http://code.google.com/p/pymysql/issues/list.
De todas formas intenta lo que te ha comentado la gente: reutiliza el cursor y haz commit cada n registros insertados. Igual al no requerir tanto del commit no caes en ese bug Un saludo, marmolro 2011/2/21 Spectrum Cuarenta y ocho k <[email protected]> > Este es el traceback: > > Traceback (most recent call last): > File "C:\Users\marcelo\Desktop\prueba_archivos.py", line 53, in <module> > leeQuote(n_archivo_, principio_, final_, principio_t, final_t) > File "C:\Users\marcelo\Desktop\prueba_archivos.py", line 46, in leeQuote > insertar(autor, cita) > File "C:\Users\marcelo\Desktop\prueba_archivos.py", line 18, in insertar > curs.execute(query) > File "C:\Python31\pymysql\cursors.py", line 108, in execute > self.errorhandler(self, exc, value) > File "C:\Python31\pymysql\connections.py", line 182, in > defaulterrorhandler > raise Error(errorclass, errorvalue) > pymysql.err.Error: (<class 'TypeError'>, TypeError("'int' does not support > the buffer interface",)) > > Un saludo. > > > --- On *Mon, 2/21/11, marmolro <[email protected]>* wrote: > > > From: marmolro <[email protected]> > Subject: Re: [Python-es] 'int' does not support the buffer interface > To: "La lista de python en castellano" <[email protected]> > Date: Monday, February 21, 2011, 8:07 PM > > > Buenas! > > ese es el mensaje, no la excepción :) Añade un "raise" al final del bloque > except: y se ve el traceback y la excepción. > > Respecto al finally echa un ojo a: > http://docs.python.org/tutorial/errors.html#defining-clean-up-actions > > simplemente para ver que se ejecuta *siempre*, con independencia de si > saltó la excepción o no.... > > Un saludo, > Marc > > > > 2011/2/21 Spectrum Cuarenta y ocho k > <[email protected]<http://mc/[email protected]> > > > > La excepción está en el título: > > 'int' does not support the buffer interface > > --- On *Mon, 2/21/11, marmolro > <[email protected]<http://mc/[email protected]> > >* wrote: > > > From: marmolro <[email protected]<http://mc/[email protected]> > > > Subject: Re: [Python-es] 'int' does not support the buffer interface > To: "La lista de python en castellano" > <[email protected]<http://mc/[email protected]> > > > Date: Monday, February 21, 2011, 7:51 PM > > > Buenas! > > en el correo > > 2011/2/21 Spectrum Cuarenta y ocho k > <[email protected]<http://mc/[email protected]> > > > > Hola: > Si te fijas tengo el commit dentro de un if(cur), de esa manera, si el > cursor, que es lo que tengo detro del try, falla, no se crearía el cur y por > lo tanto tampoco se haría el commit() > > Realmente el cursor se crea con conn.cursor(), que está fuera del try, con > lo que el if(cur) es inocuo. De todas formas, compruebas su creación, no su > estado.. > > > ¿Porqué dices lo del 'except Exception' por ser demasiado general? > > > Sí, demasiado general... como el comentario mio ;). En este caso yo > prefiero que me salte la excepción hasta afuera con toda la información > (¿que excepción es?¿cual es su traceback?)... > > > Lo único que estoy utilizando es el módulo PyMySQL (porque fue el primero > que encontré para python 3) de resto nada especial, leo unas cadenas de un > fichero, y se las paso al la función que les he puesto. > > > pega el traceback y la excepción así podemos ver por donde se queja (este > módulo creo que era 100% python, así que en principio nada que ver con > wrappers... ¿o sí?) > > > Ahí estoy mirando en San Google a ver que ponen de la excepción, pero hay > poquito, aunque tiene toda la pinta a ser algo de buffers como tú apuntas. > > Gracias. > > > > --- On *Mon, 2/21/11, marmolro > <[email protected]<http://mc/[email protected]> > >* wrote: > > > From: marmolro <[email protected]<http://mc/[email protected]> > > > > Subject: Re: [Python-es] 'int' does not support the buffer interface > To: "La lista de python en castellano" > <[email protected]<http://mc/[email protected]> > > > Date: Monday, February 21, 2011, 4:31 PM > > > Buenas! > > Es un error extraño, generalmente relacionado con buffers y el wrapping de > c/c++ ... si nos das más datos sobre lo que utilizas igual suena más. > Seguramente la excepción es inocua ya que te deja hacer el commit y te lo > deja hacer bien, pero mejor investigar :) > > Varios apuntes: > > - Hacer un except Exception siempre es mala idea :) > - El finally se ejecutará siempre, por lo que al hacer ahí el commit te > arriesgas a hacerlo sobre un "bloque" que ha generado excepción. > Casualmente, a ti te ha funcionado, pero no es lo habitual. > > > > > 2011/2/21 Spectrum Cuarenta y ocho k > <[email protected]<http://mc/[email protected]> > > > > Hola gente, he hecho un programa para insertar registros en una BD. Son > bastantes, y lo estoy haciendo por tramos de 20.000 más o menos (de forma > individual, vamos que hago correr el script cada 20000). El caso, es que > funciona bastante bien, pero cuando llevo 3 o 4 partes, sigue funcionando... > pero se salta el try. Me explico, inserta el registro,imprime el OK, pero > también me ejecuta lo que está dentro del try y pone este error: 'int' does > not support the buffer interface. > Por lo tanto, sigue realizando su función pero enseña el error. Si reinicio > el ordenador y vuelvo a ejecutarlo (exactamente el mismo código) ya no da el > error. Me da la impresión que es algún buffer de python. > > ¿a alguien le suena algo de esto o parecido? > > > > Venga, un saludo. > > def insertar(autor, texto): > query = "INSERT INTO famous_quote (text, author) VALUES (\"%s\", > \"%s\")" % (texto, autor) > curs = conn.cursor() > try: > curs.execute(query) > except Exception as errr: > print("mesaje del fallo: " + str(errr)) > print("Fallo en: " + query) > pass > finally: > if(curs): > curs.close() > conn.commit() > print("OK!") > > _______________________________________________ > Python-es mailing list > [email protected] <http://mc/[email protected]> > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > -----Inline Attachment Follows----- > > > _______________________________________________ > Python-es mailing list > [email protected] <http://mc/[email protected]> > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > [email protected] <http://mc/[email protected]> > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > -----Inline Attachment Follows----- > > _______________________________________________ > Python-es mailing list > [email protected] <http://mc/[email protected]> > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > [email protected] <http://mc/[email protected]> > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > -----Inline Attachment Follows----- > > _______________________________________________ > Python-es mailing list > [email protected] <http://mc/[email protected]> > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > _______________________________________________ > Python-es mailing list > [email protected] > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
