[Python-es] problema con sqlite3 y hilos

Miguel Barraza correo en miguelbarraza.com.ar
Jue Ago 30 05:24:29 CEST 2012


buenas, estoy haciendo una aplicación con sockets, cada cliente lo atiende en un hilo diferente.
cada cliente hace consultas a una base sqlite3.
pero al consultar me tira este error:

    self.db.execute(sql)
ProgrammingError: SQLite objects created in a thread can only be used in that sa
me thread.The object was created in thread id 2480 and this is thread id 3740

al inicio hacía una sola conexión y le pasaba el puntero de conexión a el objeto que manejaba el cliente.
pensé que ese era el error, así que hice una conexión por cada cliente dentro de la clase que gestiona cada conexión. y me tira el mismo error...así que llegué a la conclusión que sqlite no funciona con hilos...¿es eso cierto?...o de que forma puedo solucionar este problema?.

lo que hice también fue hacer una conexión dentro de un objeto y pasar el puntero de ese objeto a todos los clientes, y hacer consultas a esa clase master para que devuelva los datos de base de datos. y igualmente tiró el mismo error.

imagino que debe haber forma de trabajar con sqlite3 y hilos.
así que por eso consulto: alguien se vio en este problema?, como lo pudo solucionar?.

saludos a todos!.

pd.: no copio parte del código ya que es bastante y no se donde exactamente podría estar el error...aunque como lo probé de varias formas y siempre tiró el mismo error creo que es la metodología, no es el código...tiene que haber alguna forma que no conozco para utilizar sqlite con hilos o procesos.

atte, Miguel
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120830/69a7d4e5/attachment.html>


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