sqlite3.DatabaseError: el archivo está cifrado o no es una base de datos

He creado un db sqlite y lo subí a un alojamiento.

Luego lo recupero de mi script e bash insertar algunos datos, pero execute () está devolviendo un

DatabaseError (file is encrypted or is not a database).

 urllib.urlretrieve('http://%s/%s' % (HOST, NAME_DB), NAME_DB) con = sqlite3.connect(NAME_DB) cur = con.cursor() cur.execute('insert into log(date, count, average) values(date("now"), ?, ?)', (1, 1.2)) con.commit() con.close() Traceback (most recent call last): File "mylog.py", line 17, in  cur.execute('insert into log(date, count, average) values(date("now"), ?, ?)', (1, 1.2)) sqlite3.DatabaseError: file is encrypted or is not a database 

Tal error no ocurre si uso el CLI de sqlite para insertar datos. ¿Me podría ayudar?

¿Falta de coincidencia de versión entre la CLI de sqlite y la API de sqlite de python? Volví a crear mi db desde el script en lugar de la CLI. Ahora inserte y seleccione el trabajo desde el script, pero no desde la CLI. $sqlite -version devuelve 2.8.17, mientras que la versión de python es 2.7.3.

Tuve el mismo problema con una base de datos creada por código C ++ utilizando la biblioteca SQLite3 a la que más tarde accedió la versión Python 2.7 de SQLite3. No pude consultar la base de datos en los scripts de Python. Para resolver el problema en mi computadora, cambié la versión de:

C: \ Python27 \ DLLs \ sqlite3.dll

para la versión encontrada en el directorio de bibliotecas Sqlite de C ++.

De acuerdo, enfrenté el mismo problema y, como dice Visionnair, simplemente reemplace sqlite3.dll en pythonXX\DLLs con sqlite3.dll en la carpeta sqllite CLI que originalmente contiene sqlite3.exe y el problema se resolvió

Tuve el mismo problema, y ​​pensé que estaba mal con el db sqlite3 en el que estaba trabajando. Pero pareció que accidentalmente anulé otro archivo sqlite3.db (que estaba presente en mi proyecto), como un ASCII. No sabía que el error venía de otro db. Presta atención 🙂