Ipython: предоставить информацию о том, как обработать "sqlite3.OperationalError: попытка записи базы данных только для чтения" в сообщении об исключении

Созданный на 1 янв. 2014  ·  4Комментарии  ·  Источник: ipython/ipython

У меня возникла ошибка sqlite3.OperationalError: попытка записи базы данных только для чтения
(трассировка стека прилагается). Поскольку это кажется ошибкой, связанной с подключением к базе данных, сообщение об ошибке может быть более точным (это мой запрос на расширение), указав параметры неудачного подключения (по крайней мере, хост и порт). Непонятно, чего ожидает программа, хотя это могло быть.

трассировки стека

Ошибка в sys.excepthook:
Отслеживание (последний вызов последний):
Файл "/mnt/DATA/sources/ipython/IPython/core/application.py", строка 175, в excepthook
вернуть self.crash_handler (etype, evalue, tb)
Файл "/mnt/DATA/sources/ipython/IPython/core/crashhandler.py", строка 158, в вызове
traceback = TBhandler.text (etype, evalue, etb, context = 31)
Файл "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", строка 412, в тексте
tb_offset, контекст)
Файл "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", строка 963, в structured_traceback
ipinst = ipapi.get ()
Файл "/mnt/DATA/sources/ipython/IPython/core/ipapi.py", строка 28, в get
вернуть InteractiveShell.instance ()
Например, файл "/mnt/DATA/sources/ipython/IPython/config/configurable.py", строка 318
inst = cls (_args, _kwargs)Файл "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", строка 436, в initself.init_history ()Файл "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", строка 1489, в init_historyself.history_manager = HistoryManager (оболочка = self, config = self.config)Файл "/mnt/DATA/sources/ipython/IPython/core/history.py", строка 409, в initself.new_session ()Файл "", строка 2, в new_sessionФайл "/mnt/DATA/sources/ipython/IPython/core/history.py", строка 60, в needs_sqlitereturn f (_a, _ кВт)
Файл "/mnt/DATA/sources/ipython/IPython/core/history.py", строка 427, в new_session
NULL, "") "" ", (datetime.datetime.now (),))
sqlite3.OperationalError: попытка записи базы данных только для чтения

Исходное исключение:
Отслеживание (последний вызов последний):
Файл "/ usr / bin / ipython", строка 7, в
launch_new_instance ()
Файл "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", строка 388, в launch_new_instance
app.initialize ()
Файл "", строка 2, в инициализации
Файл "/mnt/DATA/sources/ipython/IPython/config/application.py", строка 84, в catch_config_error
метод возврата (app, _args, _kwargs)Файл "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", строка 324, в инициализацииself.init_shell ()Файл "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", строка 340, в init_shellipython_dir = self.ipython_dir)Например, файл "/mnt/DATA/sources/ipython/IPython/config/configurable.py", строка 318inst = cls (_args, * _kwargs)Файл "/mnt/DATA/sources/ipython/IPython/frontend/terminal/interactiveshell.py", строка 360, в inituser_module = user_module, custom_exceptions = custom_exceptionsФайл "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", строка 436, в initself.init_history ()Файл "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", строка 1489, в init_historyself.history_manager = HistoryManager (оболочка = self, config = self.config)Файл "/mnt/DATA/sources/ipython/IPython/core/history.py", строка 409, в initself.new_session ()Файл "", строка 2, в new_sessionФайл "/mnt/DATA/sources/ipython/IPython/core/history.py", строка 60, в needs_sqlitereturn f (_a, _ кВт)
Файл "/mnt/DATA/sources/ipython/IPython/core/history.py", строка 427, в new_session
NULL, "") "" ", (datetime.datetime.now (),))
sqlite3.OperationalError: попытка записи базы данных только для чтения

вывод python -c "import IPython; print (IPython.sys_info ())":

{'commit_hash': '858d539',
'commit_source': 'установка',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/local/lib/python2.7/dist-packages/IPython',
'ipython_version': '0.13.2',
'os_name': 'posix',
'платформа': '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+ (по умолчанию, 19 сентября 2013 г., 13:48:49) n [GCC 4.8.1]'}

Было бы неплохо иметь возможность прикреплять файлы к отчету о проблеме и иметь возможность искать уже зафиксированные проблемы (!!).

Самый полезный комментарий

Я попробовал это, и это сработало. Спасибо @takluyver , @richtekp.

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

Все 4 Комментарий

sqlite использует файл, а не сервер базы данных. По умолчанию он будет сохранен в ~/.ipython/profile_default/history.sqlite . Этот файл существует и доступен ли он для записи?

Спасибо за подсказку! Файл имел неправильные разрешения (недоступен для записи). Я предлагаю улучшить сообщение об ошибке / вывод.

Было бы неплохо иметь возможность прикреплять файлы к отчету о проблеме

Обычно используют гистограммы .

и иметь возможность искать уже зафиксированные проблемы (!!).

Поле поиска находится вверху страницы.

Я попробовал это, и это сработало. Спасибо @takluyver , @richtekp.

~/.ipython/profile_default/history.sqlite
/Users/ChessTastic/.ipython/profile_default/history.sqlite.
➜  profile_default  sudo chmod a+w history.sqlite
Password:
Была ли эта страница полезной?
0 / 5 - 0 рейтинги