Ipython: No se pueden abrir ni crear nuevos cuadernos de Jupyter

Creado en 17 nov. 2015  ·  33Comentarios  ·  Fuente: ipython/ipython

Recientemente instalé Ubuntu 14.04 en mi computadora portátil e instalé IPython 4 a través de anaconda. Sin embargo, no puedo abrir ni cargar ningún portátil, incluidos los que se abren bien en mi escritorio. Cuando intento cargar un cuaderno, aparece el siguiente error: An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.

El terminal da:

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 

Cuando intento crear un nuevo cuaderno, aparece otro error que dice Unexpected error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret' Esto parece más informativo, pero soy relativamente nuevo en Linux / python / todas estas cosas.

El terminal da:

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'

Se sugirió que incluyera la salida de python -c "import IPython; print(IPython.sys_info())" , así que aquí está:

{'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)]'}

Como se mencionó, no soy un experto en temas de computación. Espero no estar haciendo algo tonto. Intenté desinstalar y reinstalar anaconda, diferentes versiones de python, reiniciar la computadora, y también probé las soluciones que se encuentran aquí https://github.com/ipython/ipython/issues/2097 y aquí https://github.com / ipython / ipython / issues / 8294 ya que parecen similares.

Comentario más útil

Resolví este problema cambiando la propiedad del directorio ~ / .local / share / jupyter de raíz a usuario. No sé por qué ocurrió este problema, ya que no sucedió en mis otros sistemas, así que tal vez sea un error y lo dejaré aquí.

Todos 33 comentarios

Resolví este problema cambiando la propiedad del directorio ~ / .local / share / jupyter de raíz a usuario. No sé por qué ocurrió este problema, ya que no sucedió en mis otros sistemas, así que tal vez sea un error y lo dejaré aquí.

Acabo de hacer una nueva instalación y encontré el mismo problema.

Esta solución todavía funciona.

Usé "sudo" antes de "jupyter notebook --ip 0.0.0.0", y funcionó para mí.

@metallikapo cuando hago lo mismo, y si abro una terminal, estoy conectado como root. No es bueno.

Sí, no recomendamos ejecutar el servidor portátil con sudo . Eso también hará que todo el código de sus cuadernos se ejecute como root. Cambiar el archivo / directorio relevante para que sea propiedad de su usuario, como lo encontró opción . No estoy seguro de cómo surge esta situación.

Usé sudo jupyter notebook en mac, también funcionó para mi sistema.

@metallikapo muchas gracias

Usé sudo jupyter notebook en mac, también funcionó para mi sistema.

@metallikapo muchas gracias

Una vez más, no recomendamos ejecutar con sudo, y el portátil 5.0 se negará a iniciarse como root de forma predeterminada, por lo que no es una solución.

¿Qué comando usaste? cuaderno jupyter para abrir el cuaderno? También tengo el mismo problema con el portátil jupyter . Pero usar el comando jupyter-notebook en su lugar me resuelve el problema.

Sin embargo, ¿cómo se cambia la propiedad del portátil jupyter?

Entonces, ¿cuál es la mejor solución? @Carreau

La mejor solución es arreglar los permisos para que Jupyter pueda ejecutarse en su cuenta de usuario habitual. Es difícil dar instrucciones precisas para esto, porque hay diferentes cosas que pueden salir mal y causar errores similares. Pero, en general, querrá hacer algo como esto:

  1. Mire el mensaje de error 'Permiso denegado' que está recibiendo y vea a qué archivo se refiere. Si está en su directorio de inicio ( /home/username en Linux, o /Users/username en Mac), se aplican estas instrucciones. Si está en otro lugar, el problema puede ser diferente.
  2. Abra una terminal y cd a la carpeta que contiene ese archivo.
  3. Ejecute ls -l para ver todos los archivos allí. Si el archivo está allí, probablemente verá que su propietario es root , en lugar de su propio nombre de usuario. Este es el problema más común. Si el archivo no está allí, probablemente no pueda crearlo; suba un nivel e intente lo mismo en el directorio.
  4. Ejecute sudo chown username:username filename para cambiar el propietario (y grupo) del archivo a su propio usuario. Si está haciendo esto en un directorio, use la bandera -R para cambiar también todos los archivos dentro de él.

Probablemente también pueda hacer esto desde un administrador de archivos, pero hay muchos otros diferentes, por lo que no le daremos instrucciones.

(En caso de que no esté claro, reemplace username con su propio nombre de usuario en esas instrucciones)

Estoy ejecutando el sistema Linux de pynq FPGA y esto resuelve mi problema perfectamente, ¡gracias! @takluyver

Hola thomas

Después de ejecutar el código en el cuaderno de Jupyter, encontré otro
problema: IPython dir ~ / .ipython no es una ubicación de escritura, usando un temp
directorio.

¿Sabes lo que va mal?

Mejor,

Yu Li
Ciencia computacional e ingeniería,
La Universidad China de Hong Kong,
Shatin, Hong Kong

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

(En caso de que no esté claro, reemplace el nombre de usuario con su propio nombre de usuario en
esas instrucciones)

-
Estás recibiendo esto porque hiciste un comentario.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/ipython/ipython/issues/8997#issuecomment-345688870 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AbRY_MLFebh-Y8ruW-vIi-e5ZJHy8H4aks5s4XgjgaJpZM4GkQxG
.

Verifique los permisos de ~/.ipython , y pruebe sudo chown username:username ~/ipython , verifique también que:

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

en particular, que la primera columna comience con drwx si no es así, probablemente necesitará sudo chmod o+w ~/.ipython . Donde o+w medios añaden permiso rito W a O wner.

Es mejor chown que esa carpeta sea propiedad de su usuario. El uso de chmod 777 significa que cualquier usuario puede leerlo o escribirlo. Almacenamos cierta información secreta allí, como la base de datos utilizada para rastrear cuadernos confiables.

este comando funciona para mí:
cd ~ && sudo chown username: username .local / share /
recuerde reemplazar el nombre de usuario con su propio nombre de usuario

@ liwg06
Este fue el enfoque correcto. ¡Gracias!

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

SIN EMBARGO,
esto no fue suficiente para mí. Tuve que hacer una copia de seguridad a .local.

En el caso de Fedora, es posible que también desee hacer:
sudo chown -R user:user /run/user/1000/jupyter/

Solución Debian que se ajustaba a mí:
En la carpeta / run / user / 1000 / jupyter /:
chmod -R 0755 usuario: usuario

  • El simple hecho de dar permisos de lectura no solucionó el error de mi permiso.

Me encontré con el mismo problema y luego me di cuenta de que cuando ejecuté el comando pip3 install jupyter, instalé jupyter en el directorio actual que era un directorio de nivel raíz. Hubiera sido malo si cambio el propietario de ese directorio a usuario normal como ese directorio era para root, simplemente desinstalé jupyter y lo volví a instalar en mi directorio de inicio y todo funcionó perfectamente para mí

Soy un usuario de win10 y recibí este error a pesar de que ya soy el propietario de dicho directorio.

así que no estoy seguro de si esto resolverá el problema para todos. Tuve este mismo error y ninguna de las soluciones funcionó para mí. Verifico la ruta hacia donde se almacenó jupyter usando juypter --path.
habrá una lista de rutas clasificadas por configuración, datos y tiempo de ejecución. Hago un cd en una ruta en config,
se veía así
c: \ usuarios \ dn.user \ appdata \ local \ programas \ python \ python37 \ etc \ jupyter
después de cambiar de directorio a aquí
Ejecuté jupyter nuevamente y no hubo error. Espero que esto ayude a alguien

Sin embargo, ¿qué pasa con el usuario de Windows?

Quizás debería haberlo aclarado mejor. Soy un usuario de Windows y usé mi línea de comando normal

Quiero decir que estaba usando AWS WorkSpace y me enfrento a algunos problemas extraños de ubicación de archivos debido a la estructura interna del espacio de trabajo de AWS. ¡¡Lo descubrí más tarde !! Pero, ¿podría dar una solución y una ruta relativa para resolver el problema de "permiso denegado" para la creación de archivos y guardar el archivo?

El método de Mazior me ayudó a solucionarlo. ¡Gracias!

Igual que (XuuLiu comentó el 29 de abril de 2017): con Ubuntu 18.04 LS,
usar el comando jupyter-notebook en su lugar me resuelve el problema.

Ninguno de los anteriores lo resolvió, pero le di al usuario todos los puntos de verificación sub /.ipynb- y eso hizo el truco.

Para los usuarios de Windows:

Debe ejecutar el mensaje de Anaconda Ejecutar como administrador para que pueda crear y modificar.

Mi memoria estaba llena. Moví algunas de las cosas y ahora funciona bien.

  • El problema es similar al mío. Cuando uso el comando jupyter notebook para iniciar el servidor, se puede ejecutar.
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).
  • Pero accedo al servidor a través de una URL de host local en el navegador Chrome, luego se produce el error.
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
  • Mi información del sistema
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
  • Mi solución: usar el comando sudo jupyter notebook --allow-root en lugar del comando jupyter notebook para iniciar el servidor (no sé por qué funciona, pero realmente funcionó para mí).
# ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
 ubuntu@ip-172-31-48-131:~/ssl$ sudo jupyter notebook --allow-root
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

sataliulan picture sataliulan  ·  4Comentarios

peter-ch picture peter-ch  ·  4Comentarios

hexhexd picture hexhexd  ·  4Comentarios

okomarov picture okomarov  ·  3Comentarios

jakirkham picture jakirkham  ·  4Comentarios