Ipython: Kann keine neuen Jupyter-Notizbücher öffnen oder erstellen

Erstellt am 17. Nov. 2015  ·  33Kommentare  ·  Quelle: ipython/ipython

Ich habe kürzlich Ubuntu 14.04 auf meinem Laptop neu installiert und IPython 4 über Anaconda installiert. Ich kann jedoch keine Notebooks öffnen oder laden, auch nicht solche, die sich auf meinem Desktop problemlos öffnen lassen. Wenn ich versuche, ein Notebook zu laden, erhalte ich die folgende Fehlermeldung: An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.

Das Terminal gibt:

Unhandled error in API request
Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 432, in __get__
    value = obj._trait_values[self.name]
KeyError: 'db'

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/base/handlers.py", line 436, in wrapper
    result = yield gen.maybe_future(method(self, *args, **kwargs))
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/tornado/gen.py", line 870, in run
    value = future.result()
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/tornado/concurrent.py", line 215, in result
    raise_exc_info(self._exc_info)
  File "<string>", line 3, in raise_exc_info
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/tornado/gen.py", line 230, in wrapper
    yielded = next(result)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/handlers.py", line 126, in get
    path=path, type=type, format=format, content=content,
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/filemanager.py", line 350, in get
    model = self._notebook_model(path, content=content)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/filemanager.py", line 310, in _notebook_model
    self.mark_trusted_cells(nb, path)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/manager.py", line 447, in mark_trusted_cells
    trusted = self.notary.check_signature(nb)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 220, in check_signature
    if self.db is None:
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 439, in __get__
    value = self._validate(obj, dynamic_default())
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 126, in _db_default
    db = sqlite3.connect(self.db_file, **kwargs)
sqlite3.OperationalError: unable to open database file 

Wenn ich versuche, ein neues Notizbuch zu erstellen, erhalte ich eine weitere Fehlermeldung, die besagt, Unexpected error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret' Das scheint informativer zu sein, aber ich bin relativ neu in Linux/Python/all diesem Zeug.

Das Terminal gibt:

Error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied:     '/home/ryan/.local/share/jupyter/notebook_secret'
Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 432, in __get__
    value = obj._trait_values[self.name]
KeyError: 'secret'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/filemanager.py", line 387, in save
    self.check_and_sign(nb, path)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/notebook/services/contents/manager.py", line 431, in check_and_sign
    self.notary.sign(nb)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 245, in sign
    signature = self.compute_signature(nb)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 195, in compute_signature
    hmac = HMAC(self.secret, digestmod=self.digestmod)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/traitlets/traitlets.py", line 439, in __get__
    value = self._validate(obj, dynamic_default())
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 173, in _secret_default
    self._write_secret_file(secret)
  File "/home/ryan/anaconda3/lib/python3.5/site-packages/nbformat/sign.py", line 179, in _write_secret_file
    with io.open(self.secret_file, 'wb') as f:
PermissionError: [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret'

Es wurde vorgeschlagen, dass ich die Ausgabe von python -c "import IPython; print(IPython.sys_info())" , also hier ist es:

{'commit_hash': 'f534027',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/home/ryan/anaconda3/lib/python3.5/site-packages/IPython',
 'ipython_version': '4.0.0',
 'os_name': 'posix',
 'platform': 'Linux-3.19.0-33-generic-x86_64-with-debian-jessie-sid',
 'sys_executable': '/home/ryan/anaconda3/bin/python',
 'sys_platform': 'linux',
 'sys_version': '3.5.0 |Anaconda 2.4.0 (64-bit)| (default, Oct 19 2015, '
                '21:57:25) \n'
                '[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]'}

Wie gesagt, ich bin kein Experte für Computerprobleme. Ich hoffe, ich mache nichts Dummes. Ich habe versucht, Anaconda, verschiedene Versionen von Python zu deinstallieren und neu zu installieren, den Computer neu zu starten, und ich habe auch die hier gefundenen Lösungen ausprobiert https://github.com/ipython/ipython/issues/2097 und hier https://github.com /ipython/ipython/issues/8294, da sie ähnlich erscheinen.

Hilfreichster Kommentar

Ich habe dieses Problem gelöst, indem ich den Besitz des Verzeichnisses ~/.local/share/jupyter von root auf user geändert habe. Ich weiß nicht, warum dieses Problem aufgetreten ist, da es auf meinen anderen Systemen nicht aufgetreten ist, also ist es vielleicht ein Fehler und ich belasse es hier.

Alle 33 Kommentare

Ich habe dieses Problem gelöst, indem ich den Besitz des Verzeichnisses ~/.local/share/jupyter von root auf user geändert habe. Ich weiß nicht, warum dieses Problem aufgetreten ist, da es auf meinen anderen Systemen nicht aufgetreten ist, also ist es vielleicht ein Fehler und ich belasse es hier.

Ich habe gerade eine Neuinstallation durchgeführt und bin auf das gleiche Problem gestoßen.

Dieser Fix funktioniert immer noch.

Ich habe "sudo" vor "jupyter notebook --ip 0.0.0.0" verwendet und es hat bei mir funktioniert.

@metallikapo wenn ich das gleiche mache und wenn ich ein Terminal öffne, bin ich als Root angemeldet. Nicht gut.

Ja, wir empfehlen nicht, den Notebook-Server mit sudo . Dadurch wird auch der gesamte Code in Ihren Notebooks als Root ausgeführt. Es ist besser, die relevante Datei / das Verzeichnis zu ändern , die Ihrem Benutzer gehört, wie

Ich habe Sudo Jupyter Notebook in Mac verwendet, es funktionierte auch für mein System.

@metallikapo vielen Dank

Ich habe Sudo Jupyter Notebook in Mac verwendet, es funktionierte auch für mein System.

@metallikapo vielen Dank

Auch hier empfehlen wir nicht, mit sudo zu laufen, und Notebook 5.0 weigert sich standardmäßig, als Root zu starten, daher ist dies keine Lösung.

Welchen Befehl hast du verwendet? Jupyter Notebook , um das Notebook zu öffnen? Ich habe das gleiche Problem auch mit Jupyter Notebook . Aber die Verwendung des Befehls jupyter-notebook löst das Problem für mich.

Wie ändert man jedoch den Besitz des Jupyter Notebooks?

Was ist dann die bessere Lösung? @Carreau

Die bessere Lösung besteht darin, die Berechtigungen so zu korrigieren, dass Jupyter in Ihrem regulären Benutzerkonto ausgeführt werden kann. Es ist schwierig, dafür genaue Anweisungen zu geben, denn es gibt verschiedene Dinge, die schief gehen und ähnliche Fehler verursachen können. Aber im Allgemeinen möchten Sie so etwas tun:

  1. Sehen Sie sich die Fehlermeldung "Berechtigung verweigert" an und sehen Sie, auf welche Datei sie sich bezieht. Wenn sich dies in Ihrem Home-Verzeichnis befindet ( /home/username unter Linux oder /Users/username unter Mac), gelten diese Anweisungen. Wenn es woanders ist, kann das Problem anders sein.
  2. Öffnen Sie ein Terminal und gehen Sie zu cd in den Ordner, der diese Datei enthält.
  3. Führen Sie ls -l , um alle Dateien dort anzuzeigen. Wenn die Datei dort ist, sehen Sie wahrscheinlich, dass ihr Besitzer root , anstatt Ihres eigenen Benutzernamens. Dies ist das häufigste Problem. Wenn die Datei nicht vorhanden ist, kann sie wahrscheinlich nicht erstellt werden - gehen Sie eine Ebene höher und versuchen Sie dasselbe im Verzeichnis.
  4. Führen Sie sudo chown username:username filename , um den Besitzer (und die Gruppe) der Datei in Ihren eigenen Benutzer zu ändern. Wenn Sie dies in einem Verzeichnis tun, verwenden Sie das Flag -R um auch alle darin enthaltenen Dateien zu ändern.

Sie können dies wahrscheinlich auch von einem Dateimanager aus tun, aber es gibt viele verschiedene, daher werden wir keine Anweisungen geben.

(Falls es nicht klar war, ersetzen Sie username in dieser Anleitung durch Ihren eigenen Benutzernamen)

Ich laufe auf dem Linux-System von pynq FPGA und dies löst mein Problem perfekt, danke! @takluyver

Hallo Thomas,

Nachdem ich den Code im Jupyter-Notebook ausgeführt hatte, stieß ich auf einen anderen
Problem: IPython dir ~/.ipython ist kein beschreibbarer Speicherort, mit einer Temp
Verzeichnis.

Weißt du was schief läuft?

Am besten,

Yu Li
Informatik und Ingenieurwesen,
Die Chinesische Universität Hongkong,
Shatin, Hongkong

2017-11-20 21:01 GMT+08:00 Thomas Kluyver [email protected] :

(Falls es nicht klar war, ersetzen Sie den Benutzernamen durch Ihren eigenen Benutzernamen in
diese Anweisungen)


Sie erhalten dies, weil Sie einen Kommentar abgegeben haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/ipython/ipython/issues/8997#issuecomment-345688870 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AbRY_MLFebh-Y8ruW-vIi-e5ZJHy8H4aks5s4XgjgaJpZM4GkQxG
.

Überprüfen Sie die Berechtigungen von ~/.ipython und versuchen Sie es mit sudo chown username:username ~/ipython , überprüfen Sie auch Folgendes:

$ ls -al ~/
drwxr-xr-x    14 <username>  <usergroup>         476 Oct  9 05:30 .ipython

insbesondere, dass die erste Spalte mit drwx beginnt, wenn dies nicht der Fall ist, müssen Sie wahrscheinlich sudo chmod o+w ~/.ipython eingeben. Wo o+w Mittel hinzufügen W rite Erlaubnis O wner.

Es ist besser, chown diesen Ordner zu besitzen, der Ihrem Benutzer gehört. Die Verwendung von chmod 777 bedeutet, dass jeder Benutzer es lesen oder schreiben kann. Wir speichern dort einige geheime Informationen, wie die Datenbank, die verwendet wird, um vertrauenswürdige Notizbücher zu verfolgen.

dieser Befehl funktioniert bei mir:
cd ~ && sudo chown Benutzername:Benutzername .local/share/
Denken Sie daran, den Benutzernamen durch Ihren eigenen Benutzernamen zu ersetzen

@liwg06
Dies war der richtige Ansatz. Danke!

cd ~ && sudo chown Benutzername:Benutzername .local/share/

JEDOCH,
das hat mir nicht gereicht. Ich musste zurück zu .local.

Im Fall von Fedora möchten Sie vielleicht auch Folgendes tun:
sudo chown -R user:user /run/user/1000/jupyter/

Debian-Lösung, die für mich passte:
Im Ordner /run/user/1000/jupyter/:
chmod -R 0755 Benutzer:Benutzer

  • Nur Leseberechtigungen zu erteilen hat meinen Berechtigungsfehler nicht behoben.

Ich bin auf das gleiche Problem gestoßen und habe herausgefunden, dass, wenn ich den Befehl pip3 install jupyter ausgeführt habe, Jupyter im aktuellen Verzeichnis installiert wird, das ein Stammverzeichnis war dieses Verzeichnis war für root, ich habe Jupyter gerade deinstalliert und in meinem Home-Verzeichnis neu installiert und alles hat perfekt für mich funktioniert

Ich bin ein Win10-Benutzer und habe diesen Fehler erhalten, obwohl ich bereits der Besitzer des besagten Verzeichnisses bin.

Ich bin mir also nicht sicher, ob dies das Problem für alle lösen wird. Ich hatte den gleichen Fehler und keine der Lösungen hat bei mir funktioniert. Ich überprüfe den Pfad zum Speicherort von Jupyter mit dem juypter --path.
Es wird eine Liste von Pfaden geben, die nach Konfiguration, Daten und Laufzeit klassifiziert sind. Ich cd in einen Pfad unter config,
sah so aus
c:\users\dn.user\appdata\local\programs\python\python37\etc\jupyter
nach dem Wechsel des Verzeichnisses zu hier
Ich führe Jupyter erneut aus und kein Fehler. hoffe das hilft jemandem

Was ist aber mit Windows-Benutzern??

Vielleicht hätte ich das besser klären sollen. Ich bin ein Windows-Benutzer und habe meine normale Befehlszeile verwendet

Ich meine, ich habe AWS WorkSpace verwendet und habe aufgrund der inneren Struktur des AWS-Arbeitsbereichs einige seltsame Probleme mit dem Dateispeicherort! Ich habe es später herausgefunden!! Aber könnten Sie eine Lösung und einen relativen Pfad angeben, um das Problem "Berechtigung verweigert" für die Dateierstellung und das Speichern der Datei zu lösen!

Die Methode von Mazior hat mir geholfen, das Problem zu beheben. Vielen Dank!

Wie (XuuLiu kommentierte am 29. April 2017) : mit Ubuntu 18.04 LS,
Die Verwendung des Befehls jupyter-notebook löst das Problem stattdessen für mich.

Keines der oben genannten hat es gelöst, aber ich habe dem Benutzer alle Unter- /.ipynb-Checkpoints zugewiesen und das hat den Zweck erfüllt.

Für die Windows-Benutzer:

Sie müssen die Anaconda-Eingabeaufforderung Als Administrator ausführen ausführen, damit Sie erstellen und ändern können.

Mein Gedächtnis war voll. Ich habe einige Sachen verschoben und es funktioniert jetzt einwandfrei.

  • Das Problem ist mir ähnlich. Wenn ich den Befehl jupyter notebook zum Starten des Servers verwende, kann er ausgeführt werden.
ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
[I 05:32:07.950 NotebookApp] Loading IPython parallel extension
[I 05:32:07.952 NotebookApp] Serving notebooks from local directory: /home/ubuntu/ssl
[I 05:32:07.952 NotebookApp] The Jupyter Notebook is running at:
[I 05:32:07.952 NotebookApp] https://(ip-172-31-48-131 or 127.0.0.1):8888/
[I 05:32:07.952 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
  • Ich greife aber über eine localhost-URL im Chrome-Browser auf den Server zu, dann tritt der Fehler auf.
ERROR:asyncio:Exception in callback BaseAsyncIOLoop._handle_events(4, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(4, 1)>
Traceback (most recent call last):
  File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
    self._callback(*self._args)
  File "/usr/local/lib/python3.6/dist-packages/tornado/platform/asyncio.py", line 122, in _handle_events
    handler_func(fileobj, events)
  File "/usr/local/lib/python3.6/dist-packages/tornado/stack_context.py", line 300, in null_wrapper
    return fn(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tornado/netutil.py", line 262, in accept_handler
    callback(connection, address)
  File "/usr/local/lib/python3.6/dist-packages/tornado/tcpserver.py", line 263, in _handle_connection
    do_handshake_on_connect=False)
  File "/usr/local/lib/python3.6/dist-packages/tornado/netutil.py", line 565, in ssl_wrap_socket
    context = ssl_options_to_context(ssl_options)
  File "/usr/local/lib/python3.6/dist-packages/tornado/netutil.py", line 540, in ssl_options_to_context
    context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
PermissionError: [Errno 13] Permission denied
  • Meine Systeminfos
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
  • Meine Lösung: Verwenden des Befehls sudo jupyter notebook --allow-root anstelle des Befehls jupyter notebook zum Starten des Servers. (Ich weiß nicht, warum es funktioniert, aber bei mir hat es wirklich funktioniert.)
# ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
 ubuntu@ip-172-31-48-131:~/ssl$ sudo jupyter notebook --allow-root
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

sataliulan picture sataliulan  ·  4Kommentare

lewisacidic picture lewisacidic  ·  3Kommentare

zhao-ji picture zhao-ji  ·  4Kommentare

quchunguang picture quchunguang  ·  3Kommentare

okomarov picture okomarov  ·  3Kommentare