Ipython: fournir des informations sur la façon de gérer "sqlite3.OperationalError: essayer d'écrire une base de données en lecture seule" dans le message d'exception

Créé le 1 janv. 2014  ·  4Commentaires  ·  Source: ipython/ipython

Je rencontre un sqlite3.OperationalError : tentative d'écriture d'une base de données en lecture seule
(trace de pile jointe). Comme cela semble être une erreur liée à une connexion à une base de données, le message d'erreur pourrait être plus précis (ce qui est ma demande d'amélioration), en spécifiant les paramètres de connexion ayant échoué (au moins l'hôte et le port). On ne sait pas exactement à quoi le programme s'attend, ce qu'il pourrait être.

trace de la pile

Erreur dans sys.excepthook :
Traceback (appel le plus récent en dernier) :
Fichier "/mnt/DATA/sources/ipython/IPython/core/application.py", ligne 175, en excepthook
return self.crash_handler(etype, evalue, tb)
Fichier "/mnt/DATA/sources/ipython/IPython/core/crashhandler.py", ligne 158, en appel
traceback = TBhandler.text(etype,evalue,etb,context=31)
Fichier "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", ligne 412, dans le texte
tb_offset, contexte)
Fichier "/mnt/DATA/sources/ipython/IPython/core/ultratb.py", ligne 963, dans structuré_traceback
ipinst = ipapi.get()
Fichier "/mnt/DATA/sources/ipython/IPython/core/ipapi.py", ligne 28, dans get
return InteractiveShell.instance()
Fichier "/mnt/DATA/sources/ipython/IPython/config/configurable.py", ligne 318, par exemple
inst = cls(_args, _kwargs)Fichier "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", ligne 436, dans initself.init_history()Fichier "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", ligne 1489, dans init_historyself.history_manager = HistoryManager(shell=self, config=self.config)Fichier "/mnt/DATA/sources/ipython/IPython/core/history.py", ligne 409, dans initself.new_session()Déposer "", ligne 2, dans new_sessionFichier "/mnt/DATA/sources/ipython/IPython/core/history.py", ligne 60, dans need_sqliterenvoie f(_a,_ kilowatts)
Fichier "/mnt/DATA/sources/ipython/IPython/core/history.py", ligne 427, dans new_session
NULL, "") """, (datetime.datetime.now(),))
sqlite3.OperationalError : tentative d'écriture d'une base de données en lecture seule

L'exception d'origine était :
Traceback (appel le plus récent en dernier) :
Fichier "/usr/bin/ipython", ligne 7, dans
launch_new_instance()
Fichier "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", ligne 388, dans launch_new_instance
app.initialize()
Déposer "", ligne 2, dans initialize
Fichier "/mnt/DATA/sources/ipython/IPython/config/application.py", ligne 84, dans catch_config_error
méthode de retour (app, _args, _kwargs)Fichier "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", ligne 324, dans initializeself.init_shell()Fichier "/mnt/DATA/sources/ipython/IPython/frontend/terminal/ipapp.py", ligne 340, dans init_shellipython_dir=self.ipython_dir)Fichier "/mnt/DATA/sources/ipython/IPython/config/configurable.py", ligne 318, par exempleinst = cls(_args, *_kwargs)Fichier "/mnt/DATA/sources/ipython/IPython/frontend/terminal/interactiveshell.py", ligne 360, dans inituser_module=user_module, custom_exceptions=custom_exceptionsFichier "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", ligne 436, dans initself.init_history()Fichier "/mnt/DATA/sources/ipython/IPython/core/interactiveshell.py", ligne 1489, dans init_historyself.history_manager = HistoryManager(shell=self, config=self.config)Fichier "/mnt/DATA/sources/ipython/IPython/core/history.py", ligne 409, dans initself.new_session()Déposer "", ligne 2, dans new_sessionFichier "/mnt/DATA/sources/ipython/IPython/core/history.py", ligne 60, dans need_sqliterenvoie f(_a,_ kilowatts)
Fichier "/mnt/DATA/sources/ipython/IPython/core/history.py", ligne 427, dans new_session
NULL, "") """, (datetime.datetime.now(),))
sqlite3.OperationalError : tentative d'écriture d'une base de données en lecture seule

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

{'commit_hash': '858d539',
'commit_source' : 'installation',
'default_encoding' : 'UTF-8',
'ipython_path' : '/usr/local/lib/python2.7/dist-packages/IPython',
'ipython_version' : '0.13.2',
'os_name' : 'posix',
'plateforme' : '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+ (par défaut, 19 septembre 2013, 13:48:49) n[GCC 4.8.1]'}

Ce serait bien d'avoir la possibilité de joindre des fichiers au rapport de problème et de pouvoir rechercher les problèmes déjà commis (!!).

Commentaire le plus utile

Je l'ai essayé et ça marche. Merci @takluyver , @richtekp.

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

Tous les 4 commentaires

sqlite utilise un fichier, pas un serveur de base de données. Par défaut, il sera enregistré en ~/.ipython/profile_default/history.sqlite . Ce fichier existe-t-il et est-il accessible en écriture ?

Merci pour l'astuce ! Le fichier avait les mauvaises autorisations (non accessible en écriture). Je suggère d'améliorer le message d'erreur/la sortie.

Ce serait bien d'avoir la possibilité de joindre des fichiers au rapport de problème

Il est courant d'utiliser des gists .

et pouvoir rechercher les problèmes déjà engagés (!!).

Le champ de recherche est situé en haut de la page.

Je l'ai essayé et ça marche. Merci @takluyver , @richtekp.

~/.ipython/profile_default/history.sqlite
/Users/ChessTastic/.ipython/profile_default/history.sqlite.
➜  profile_default  sudo chmod a+w history.sqlite
Password:
Cette page vous a été utile?
0 / 5 - 0 notes