Ipython: fornecer informações sobre como lidar com "sqlite3.OperationalError: tentativa de escrever um banco de dados somente leitura" na mensagem de exceção

Criado em 1 jan. 2014  ·  4Comentários  ·  Fonte: ipython/ipython

Estou enfrentando um sqlite3.OperationalError: tentativa de escrever um banco de dados somente leitura
(rastreamento de pilha anexado). Como este parece ser um erro relacionado a uma conexão de banco de dados, a mensagem de erro poderia ser mais precisa (que é minha solicitação de aprimoramento), especificando os parâmetros de conexão com falha (pelo menos host e porta). Não está claro o que o programa espera que possa ser.

rastreamento de pilha

Erro em sys.excepthook:
Traceback (última chamada mais recente):
Arquivo "/mnt/DATA/sources/ipython/IPython/core/application.py", linha 175, em excepthook
return self.crash_handler (etype, evalue, tb)
Arquivo "/mnt/DATA/sources/ipython/IPython/core/crashhandler.py", linha 158, na chamada
traceback = TBhandler.text (etype, evalue, etb, context = 31)
Arquivo "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", linha 412, no texto
tb_offset, context)
Arquivo "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", linha 963, em straceback estruturado
ipinst = ipapi.get ()
Arquivo "/mnt/DATA/sources/ipython/IPython/core/ipapi.py", linha 28, em get
return InteractiveShell.instance ()
Arquivo "/mnt/DATA/sources/ipython/IPython/config/configurable.py", linha 318, na instância
inst = cls (_args, _kwargs)Arquivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", linha 436, no initself.init_history ()Arquivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", linha 1489, em init_historyself.history_manager = HistoryManager (shell = self, config = self.config)Arquivo "/mnt/DATA/sources/ipython/IPython/core/history.py", linha 409, no initself.new_session ()Arquivo "", linha 2, em nova_sessãoArquivo "/mnt/DATA/sources/ipython/IPython/core/history.py", linha 60, em needs_sqlitereturn f (_a, _ kw)
Arquivo "/mnt/DATA/sources/ipython/IPython/core/history.py", linha 427, em new_session
NULL, "") "" ", (datetime.datetime.now (),))
sqlite3.OperationalError: tentativa de escrever um banco de dados somente leitura

A exceção original foi:
Traceback (última chamada mais recente):
Arquivo "/ usr / bin / ipython", linha 7, em
launch_new_instance ()
Arquivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", linha 388, em launch_new_instance
app.initialize ()
Arquivo "", linha 2, na inicialização
Arquivo "/mnt/DATA/sources/ipython/IPython/config/application.py", linha 84, em catch_config_error
método de retorno (app, _args, _kwargs)Arquivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", linha 324, na inicializaçãoself.init_shell ()Arquivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", linha 340, em init_shellipython_dir = self.ipython_dir)Arquivo "/mnt/DATA/sources/ipython/IPython/config/configurable.py", linha 318, na instânciainst = cls (_args, * _kwargs)Arquivo "/mnt/DATA/sources/ipython/IPython/frontend/terminal/interactiveshell.py", linha 360, no inituser_module = user_module, custom_exceptions = custom_exceptionsArquivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", linha 436, no initself.init_history ()Arquivo "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", linha 1489, em init_historyself.history_manager = HistoryManager (shell = self, config = self.config)Arquivo "/mnt/DATA/sources/ipython/IPython/core/history.py", linha 409, no initself.new_session ()Arquivo "", linha 2, em nova_sessãoArquivo "/mnt/DATA/sources/ipython/IPython/core/history.py", linha 60, em needs_sqlitereturn f (_a, _ kw)
Arquivo "/mnt/DATA/sources/ipython/IPython/core/history.py", linha 427, em new_session
NULL, "") "" ", (datetime.datetime.now (),))
sqlite3.OperationalError: tentativa de escrever um banco de dados somente leitura

saída de python -c "import IPython; print (IPython.sys_info ())":

{'commit_hash': '858d539',
'commit_source': 'instalação',
'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+ (padrão, 19 de setembro de 2013, 13:48:49) n [GCC 4.8.1]'}

Seria bom ter a possibilidade de anexar arquivos ao relatório de problema e poder pesquisar os problemas já confirmados (!!).

Comentários muito úteis

Eu tentei isso e funcionou. Obrigado @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 comentários

O sqlite usa um arquivo, não um servidor de banco de dados. Por padrão, ele estará salvando em ~/.ipython/profile_default/history.sqlite . Esse arquivo existe e é gravável?

Obrigado pela dica! O arquivo tinha as permissões erradas (não gravável). Sugiro melhorar a mensagem / saída de erro.

Seria bom ter a possibilidade de anexar arquivos ao relatório de problema

É comum usar gists .

e poder pesquisar os assuntos já comprometidos (!!).

O campo de pesquisa está localizado na parte superior da página.

Eu tentei isso e funcionou. Obrigado @takluyver , @richtekp.

~/.ipython/profile_default/history.sqlite
/Users/ChessTastic/.ipython/profile_default/history.sqlite.
➜  profile_default  sudo chmod a+w history.sqlite
Password:
Esta página foi útil?
0 / 5 - 0 avaliações