Ipython: proporcionar información sobre cómo manejar "sqlite3.OperationalError: intento de escribir una base de datos de solo lectura" en el mensaje de excepción

Creado en 1 ene. 2014  ·  4Comentarios  ·  Fuente: ipython/ipython

Estoy experimentando un error sqlite3.OperationalError: intento escribir una base de datos de solo lectura
(seguimiento de pila adjunto). Como esto parece ser un error relacionado con una conexión de base de datos, el mensaje de error podría ser más preciso (que es mi solicitud de mejora), especificando los parámetros de conexión fallidos (al menos el host y el puerto). No está claro qué espera el programa ni qué podría ser.

stacktrace

Error en sys.excepthook:
Rastreo (llamadas recientes más última):
Archivo "/mnt/DATA/sources/ipython/IPython/core/application.py", línea 175, en excepthook
return self.crash_handler (etype, evalue, tb)
Archivo "/mnt/DATA/sources/ipython/IPython/core/crashhandler.py", línea 158, en la llamada
traceback = TBhandler.text (etype, evalue, etb, context = 31)
Archivo "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", línea 412, en texto
tb_offset, contexto)
Archivo "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", línea 963, en structure_traceback
ipinst = ipapi.get ()
Archivo "/mnt/DATA/sources/ipython/IPython/core/ipapi.py", línea 28, en get
devolver InteractiveShell.instance ()
Archivo "/mnt/DATA/sources/ipython/IPython/config/configurable.py", línea 318, por ejemplo
inst = cls (_args, _kwargs)Archivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", línea 436, en initself.init_history ()Archivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", línea 1489, en init_historyself.history_manager = HistoryManager (shell = self, config = self.config)Archivo "/mnt/DATA/sources/ipython/IPython/core/history.py", línea 409, en initself.new_session ()Archivo "", línea 2, en new_sessionArchivo "/mnt/DATA/sources/ipython/IPython/core/history.py", línea 60, en needs_sqlitevolver f (_a, _ kw)
Archivo "/mnt/DATA/sources/ipython/IPython/core/history.py", línea 427, en new_session
NULL, "") "" ", (datetime.datetime.now (),))
sqlite3.OperationalError: intento de escribir una base de datos de solo lectura

La excepción original fue:
Rastreo (llamadas recientes más última):
Archivo "/ usr / bin / ipython", línea 7, en
launch_new_instance ()
Archivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", línea 388, en launch_new_instance
app.initialize ()
Archivo "", línea 2, en inicializar
Archivo "/mnt/DATA/sources/ipython/IPython/config/application.py", línea 84, en catch_config_error
método de retorno (aplicación, _args, _kwargs)Archivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", línea 324, en initializeself.init_shell ()Archivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", línea 340, en init_shellipython_dir = self.ipython_dir)Archivo "/mnt/DATA/sources/ipython/IPython/config/configurable.py", línea 318, por ejemploinst = cls (_args, * _kwargs)Archivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/interactiveshell.py", línea 360, en inituser_module = user_module, custom_exceptions = custom_exceptionsArchivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", línea 436, en initself.init_history ()Archivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", línea 1489, en init_historyself.history_manager = HistoryManager (shell = self, config = self.config)Archivo "/mnt/DATA/sources/ipython/IPython/core/history.py", línea 409, en initself.new_session ()Archivo "", línea 2, en new_sessionArchivo "/mnt/DATA/sources/ipython/IPython/core/history.py", línea 60, en needs_sqlitevolver f (_a, _ kw)
Archivo "/mnt/DATA/sources/ipython/IPython/core/history.py", línea 427, en new_session
NULL, "") "" ", (datetime.datetime.now (),))
sqlite3.OperationalError: intento de escribir una base de datos de solo lectura

salida de python -c "import IPython; print (IPython.sys_info ())":

{'commit_hash': '858d539',
'commit_source': 'instalación',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/local/lib/python2.7/dist-packages/IPython',
'ipython_version': '0.13.2',
'os_name': 'posix',
'plataforma': 'Linux-3.11.0-14-generic-x86_64-with-Ubuntu-13.10-saucy',
'sys_executable': '/ usr / bin / python',
'sys_platform': 'linux2',
'sys_version': '2.7.5+ (predeterminado, 19 de septiembre de 2013, 13:48:49) n [GCC 4.8.1]'}

Sería bueno tener la posibilidad de adjuntar archivos al informe de problemas y poder buscar los problemas ya comprometidos (!!).

Comentario más útil

Probé esto y funcionó. Gracias @takluyver , @richtekp.

~/.ipython/profile_default/history.sqlite
/Users/ChessTastic/.ipython/profile_default/history.sqlite.
➜  profile_default  sudo chmod a+w history.sqlite
Password:

Todos 4 comentarios

sqlite usa un archivo, no un servidor de base de datos. De forma predeterminada, se guardará en ~/.ipython/profile_default/history.sqlite . ¿Existe ese archivo y se puede escribir?

¡Gracias por la pista! El archivo tenía los permisos incorrectos (no se pueden escribir). Sugiero mejorar el mensaje / salida de error.

Sería bueno tener la posibilidad de adjuntar archivos al informe de problemas

Es común utilizar gists .

y poder buscar los problemas ya comprometidos (!!).

El campo de búsqueda se encuentra en la parte superior de la página.

Probé esto y funcionó. Gracias @takluyver , @richtekp.

~/.ipython/profile_default/history.sqlite
/Users/ChessTastic/.ipython/profile_default/history.sqlite.
➜  profile_default  sudo chmod a+w history.sqlite
Password:
¿Fue útil esta página
0 / 5 - 0 calificaciones