Tengo un programa de Python que usa el módulo "subprocesamiento". Una vez por segundo, mi programa inicia un nuevo hilo que recupera algunos datos de la web y los almacena en mi disco duro. Me gustaría usar sqlite3 para almacenar estos resultados, pero no puedo hacer que funcione. El problema parece estar relacionado con la siguiente línea:
conn = sqlite3.connect("mydatabase.db")
- Si pongo esta línea de código dentro de cada hilo, obtengo un OperationalError que me dice que el archivo de la base de datos está bloqueado. Supongo que esto significa que otro hilo tiene mydatabase.db abierto a través de una conexión sqlite3 y lo ha bloqueado.
- Si pongo esta línea de código en el programa principal y paso el objeto de conexión (conn) a cada hilo, obtengo un ProgrammingError, que dice que los objetos SQLite creados en un hilo solo pueden usarse en ese mismo hilo.
Anteriormente, almacenaba todos mis resultados en archivos CSV y no tenía ninguno de estos problemas de bloqueo de archivos. Con suerte, esto será posible con sqlite. ¿Algunas ideas?