<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Gracias.<br><br>--- On <b>Mon, 2/21/11, marmolro <i><marmolro@gmail.com></i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: marmolro <marmolro@gmail.com><br>Subject: Re: [Python-es] 'int' does not support the buffer interface<br>To: "La lista de python en castellano" <python-es@python.org><br>Date: Monday, February 21, 2011, 8:44 PM<br><br><div id="yiv712851524">Apostaría que el error está en alguna c-api, pero no sabría decirte más.... puedes probar con <a rel="nofollow" target="_blank" href="http://code.google.com/p/pymysql/issues/list">http://code.google.com/p/pymysql/issues/list</a>.<div><br></div><div>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</div>
<div><br></div><div>Un saludo,</div><div>marmolro<br><br><div class="yiv712851524gmail_quote">2011/2/21 Spectrum Cuarenta y ocho k <span dir="ltr"><<a rel="nofollow" ymailto="mailto:s_48k@yahoo.com" target="_blank" href="/mc/compose?to=s_48k@yahoo.com">s_48k@yahoo.com</a>></span><br><blockquote class="yiv712851524gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top">Este es el traceback:<br><br>Traceback (most recent call last):<br> File "C:\Users\marcelo\Desktop\prueba_archivos.py", line 53, in <module><br>
leeQuote(n_archivo_, principio_, final_, principio_t, final_t)<br> File "C:\Users\marcelo\Desktop\prueba_archivos.py", line 46, in leeQuote<br> insertar(autor, cita)<br> File "C:\Users\marcelo\Desktop\prueba_archivos.py", line 18, in insertar<br>
curs.execute(query)<br> File "C:\Python31\pymysql\cursors.py", line 108, in execute<br> self.errorhandler(self, exc, value)<br> File "C:\Python31\pymysql\connections.py", line 182, in defaulterrorhandler<br>
raise Error(errorclass, errorvalue)<br>pymysql.err.Error: (<class 'TypeError'>, TypeError("'int' does not support the buffer
interface",))<br><br>Un saludo.<div class="yiv712851524im"><br><br>--- On <b>Mon, 2/21/11, marmolro <i><<a rel="nofollow" ymailto="mailto:marmolro@gmail.com" target="_blank" href="/mc/compose?to=marmolro@gmail.com">marmolro@gmail.com</a>></i></b> wrote:<br></div><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;">
<div class="yiv712851524im"><br>From: marmolro <<a rel="nofollow" ymailto="mailto:marmolro@gmail.com" target="_blank" href="/mc/compose?to=marmolro@gmail.com">marmolro@gmail.com</a>><br>Subject: Re: [Python-es] 'int' does not support the buffer interface<br>To: "La lista de python en castellano" <<a rel="nofollow" ymailto="mailto:python-es@python.org" target="_blank" href="/mc/compose?to=python-es@python.org">python-es@python.org</a>><br>
</div>Date: Monday, February 21, 2011, 8:07 PM<div><div></div><div class="yiv712851524h5"><br><br><div>Buenas!<div><br></div><div>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.</div>
<div><br></div><div>Respecto al finally echa un ojo a:</div>
<div><a rel="nofollow" target="_blank" href="http://docs.python.org/tutorial/errors.html#defining-clean-up-actions">http://docs.python.org/tutorial/errors.html#defining-clean-up-actions</a></div><div><br></div><div>simplemente para ver que se ejecuta *siempre*, con independencia de si saltó la excepción o no....</div>
<div><br></div><div>Un saludo,</div><div>Marc</div><div><br></div><div><br><br><div>2011/2/21 Spectrum Cuarenta y ocho k <span dir="ltr"><<a rel="nofollow" target="_blank" href="http://mc/compose?to=s_48k@yahoo.com">s_48k@yahoo.com</a>></span><br>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top">La excepción está en el título:<div>
<br>'int' does not support the buffer interface<br><br>--- On <b>Mon, 2/21/11, marmolro <i><<a rel="nofollow" target="_blank" href="http://mc/compose?to=marmolro@gmail.com">marmolro@gmail.com</a>></i></b> wrote:<br>
</div><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;">
<div><br>From: marmolro <<a rel="nofollow" target="_blank" href="http://mc/compose?to=marmolro@gmail.com">marmolro@gmail.com</a>><br>Subject: Re: [Python-es] 'int' does not support the buffer interface<br>To: "La lista de python en castellano" <<a rel="nofollow" target="_blank" href="http://mc/compose?to=python-es@python.org">python-es@python.org</a>><br>
</div>Date: Monday, February 21, 2011, 7:51 PM<div><div></div><div><br><br><div>Buenas!<div><br></div><div>en el correo<br><br><div>2011/2/21 Spectrum Cuarenta y ocho k <span dir="ltr"><<a rel="nofollow" target="_blank" href="http://mc/compose?to=s_48k@yahoo.com">s_48k@yahoo.com</a>></span><br>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top">Hola:<br> 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()<br>
<br></td></tr></tbody></table></blockquote><div>Realmente el cursor se crea con <span style="font-family:arial, sans-serif;font-size:13px;">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..</span></div>
<div> </div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top">¿Porqué dices lo del 'except Exception' por ser demasiado general?<br>
</td></tr></tbody></table></blockquote><div><br></div><div>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?)...</div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top"><br>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.<br>
</td></tr></tbody></table></blockquote><div><br></div><div>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í?)</div>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top"><br>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.<br>
<br>Gracias.<br><br><br><br>--- On <b>Mon, 2/21/11, marmolro <i><<a rel="nofollow" target="_blank" href="http://mc/compose?to=marmolro@gmail.com">marmolro@gmail.com</a>></i></b> wrote:<br><blockquote style="border-left:2px solid rgb(16, 16, 255);margin-left:5px;padding-left:5px;">
<br>From:
marmolro <<a rel="nofollow" target="_blank" href="http://mc/compose?to=marmolro@gmail.com">marmolro@gmail.com</a>><div><br>Subject: Re: [Python-es] 'int' does not support the buffer interface<br>To: "La lista de python en castellano" <<a rel="nofollow" target="_blank" href="http://mc/compose?to=python-es@python.org">python-es@python.org</a>><br>
</div>Date: Monday, February 21, 2011, 4:31 PM<div><div></div><div><br><br><div>Buenas!<div><br></div><div>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 :)</div>
<div><br></div><div>Varios apuntes:</div><div><ul><li>Hacer un except Exception siempre es mala idea :)</li><li>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.</li>
</ul></div><div><br></div><div><br><br><div>2011/2/21 Spectrum Cuarenta y ocho k <span dir="ltr"><<a rel="nofollow" target="_blank" href="http://mc/compose?to=s_48k@yahoo.com">s_48k@yahoo.com</a>></span><br><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top">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.<br>
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. <br><br>¿a alguien le suena algo de esto o parecido?<br>
</td></tr></tbody></table></blockquote><div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font:inherit;" valign="top">
<br>Venga, un saludo.<br><br>def insertar(autor, texto):<br> query =
"INSERT INTO famous_quote (text, author) VALUES (\"%s\", \"%s\")" % (texto, autor)<br> curs = conn.cursor()<br> try:<br> curs.execute(query)<br> except Exception as errr:<br>
print("mesaje del fallo: " + str(errr))<br> print("Fallo en: " + query)<br> pass<br> finally:<br>
if(curs):<br> curs.close()<br> conn.commit()<br> print("OK!")</td></tr></tbody></table><br>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a rel="nofollow" target="_blank" href="http://mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
</div><br></div></div>-----Inline Attachment Follows-----<div><br><br><div>_______________________________________________<br>Python-es mailing list<br><a rel="nofollow" target="_blank" href="http://mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
</div></div></blockquote></td></tr></tbody></table><br>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a rel="nofollow" target="_blank" href="http://mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
</div><br>-----Inline Attachment Follows-----<br><br><div>_______________________________________________<br>Python-es mailing list<br><a rel="nofollow" target="_blank" href="http://mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
</div></div></div></blockquote></td></tr></tbody></table><br>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a rel="nofollow" target="_blank" href="http://mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
</div><br>-----Inline Attachment Follows-----<br><br><div>_______________________________________________<br>Python-es mailing list<br><a rel="nofollow" target="_blank" href="http://mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
</div></div></div></blockquote></td></tr></tbody></table><br>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a rel="nofollow" ymailto="mailto:Python-es@python.org" target="_blank" href="/mc/compose?to=Python-es@python.org">Python-es@python.org</a><br>
<a rel="nofollow" target="_blank" href="http://mail.python.org/mailman/listinfo/python-es">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a rel="nofollow" target="_blank" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
</div><br>-----Inline Attachment Follows-----<br><br><div class="plainMail">_______________________________________________<br>Python-es mailing list<br><a ymailto="mailto:Python-es@python.org" href="/mc/compose?to=Python-es@python.org">Python-es@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br></div></blockquote></td></tr></table><br>