Ipython: Não é possível abrir ou criar novos blocos de anotações Jupyter

Criado em 17 nov. 2015  ·  33Comentários  ·  Fonte: ipython/ipython

Recentemente, instalei o Ubuntu 14.04 no meu laptop e instalei o IPython 4 por meio do anaconda. No entanto, não consigo abrir ou carregar nenhum notebook, incluindo aqueles que abrem bem na minha área de trabalho. Quando tento carregar um bloco de notas, obtenho o seguinte erro: An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.

O terminal oferece:

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 

Quando tento criar um novo bloco de notas, recebo outro erro que diz: Unexpected error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret' Isso parece mais informativo, mas sou relativamente novo no Linux / python / todas essas coisas.

O terminal oferece:

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'

Foi sugerido que eu incluísse a saída de python -c "import IPython; print(IPython.sys_info())" , então aqui 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 mencionei, não sou um especialista em questões de computação. Espero não estar fazendo algo estúpido. Eu tentei desinstalar e reinstalar o anaconda, diferentes versões do python, reiniciar o computador, e também tentei as soluções encontradas aqui https://github.com/ipython/ipython/issues/2097 e aqui https://github.com / ipython / ipython / issues / 8294 porque parecem semelhantes.

Comentários muito úteis

Resolvi esse problema alterando a propriedade do diretório ~ / .local / share / jupyter de root para usuário. Não sei por que ocorreu esse problema, já que não aconteceu nos meus outros sistemas, então talvez seja um bug e vou deixar isso aqui.

Todos 33 comentários

Resolvi esse problema alterando a propriedade do diretório ~ / .local / share / jupyter de root para usuário. Não sei por que ocorreu esse problema, já que não aconteceu nos meus outros sistemas, então talvez seja um bug e vou deixar isso aqui.

Acabei de fazer uma nova instalação e encontrei o mesmo problema.

Essa correção ainda funciona.

Usei "sudo" antes de "jupyter notebook --ip 0.0.0.0" e funcionou para mim.

@metallikapo quando faço o mesmo, e se eu abrir um terminal, estou logado como root. Não é bom.

Sim, não recomendamos executar o servidor de notebook com sudo . Isso também fará com que todo o código em seus notebooks seja executado como root. Alterar o arquivo / diretório relevante de propriedade de seu usuário, conforme @ rtdew1 encontrado, é uma coisa melhor a fazer. Não tenho certeza de como essa situação surge.

Eu usei o notebook sudo jupyter no mac e também funcionou no meu sistema.

muito obrigado

Eu usei o notebook sudo jupyter no mac e também funcionou no meu sistema.

muito obrigado

Novamente, não recomendamos executar com sudo, e o notebook 5.0 se recusará a iniciar como root por padrão, portanto, não é uma solução.

Que comando você usou? notebook jupyter para abrir o notebook? Eu tenho o mesmo problema com o notebook Jupyter também. Mas usar o comando jupyter-notebook resolve o problema para mim.

como você muda a propriedade do notebook jupyter embora?

Então qual é a melhor solução? @Carreau

A melhor solução é corrigir as permissões para que o Jupyter possa ser executado em sua conta de usuário regular. É difícil fornecer instruções precisas para isso, porque existem diferentes coisas que podem dar errado e causar erros semelhantes. Mas, em geral, você desejará fazer algo assim:

  1. Veja a mensagem de erro 'Permissão negada' que você está recebendo e veja a que arquivo ela se refere. Se estiver em seu diretório inicial ( /home/username no Linux ou /Users/username no Mac), estas instruções se aplicam. Se estiver em outro lugar, o problema pode ser diferente.
  2. Abra um terminal e cd para a pasta que contém esse arquivo.
  3. Execute ls -l para ver todos os arquivos lá. Se o arquivo estiver lá, você provavelmente verá que seu proprietário é root , em vez de seu próprio nome de usuário. Este é o problema mais comum. Se o arquivo não estiver lá, provavelmente não será possível criá-lo - suba um nível e tente a mesma coisa no diretório.
  4. Execute sudo chown username:username filename para alterar o proprietário (e grupo) do arquivo para seu próprio usuário. Se você estiver fazendo isso em um diretório, use o sinalizador -R para alterar também todos os arquivos dentro dele.

Você provavelmente também pode fazer isso a partir de um gerenciador de arquivos, mas existem vários gerenciadores de arquivos diferentes, então não daremos instruções.

(Caso não tenha ficado claro, substitua username pelo seu próprio nome de usuário nessas instruções)

Estou rodando no sistema Linux da pynq FPGA e isso resolve meu problema perfeitamente, obrigado! @takluyver

Oi Thomas,

Depois de executar o código no notebook Jupyter, encontrei outro
problema: IPython dir ~ / .ipython não é um local gravável, usando um temporário
diretório.

Você sabe o que está errado?

Melhor,

Yu Li
Ciência da Computação e Engenharia,
A Universidade Chinesa de Hong Kong,
Shatin, Hong Kong

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

(Caso não tenha ficado claro, substitua o nome de usuário pelo seu próprio nome de usuário no
essas instruções)

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/ipython/ipython/issues/8997#issuecomment-345688870 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AbRY_MLFebh-Y8ruW-vIi-e5ZJHy8H4aks5s4XgjgaJpZM4GkQxG
.

Verifique as permissões de ~/.ipython e tente sudo chown username:username ~/ipython , verifique também se:

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

em particular, que a primeira coluna comece com drwx se não for, você precisará sudo chmod o+w ~/.ipython provavelmente. Onde o+w meios adicionar permissão rito W para O wner.

É melhor chown essa pasta pertencer ao seu usuário. Usar chmod 777 significa que qualquer usuário pode ler ou escrever. Nós armazenamos algumas informações secretas lá, como o banco de dados usado para rastrear notebooks confiáveis.

este comando funciona para mim:
cd ~ && sudo chown nome de usuário: nome de usuário .local / share /
lembre-se de substituir o nome de usuário pelo seu próprio nome de usuário

@ liwg06
Esta foi a abordagem correta. obrigado!

cd ~ && sudo chown nome de usuário: nome de usuário .local / share /

CONTUDO,
isso não foi suficiente para mim. Tive que voltar para .local.

No caso do Fedora, você também pode querer fazer:
sudo chown -R user:user /run/user/1000/jupyter/

Solução Debian adequada para mim:
Na pasta / run / user / 1000 / jupyter /:
chmod -R 0755 usuário: usuário

  • Apenas dar permissões de leitura não corrigiu meu erro de permissão.

Eu tive o mesmo problema e então descobri que quando executei o comando pip3 install jupyter, ele instalou o jupyter no diretório atual, que era um diretório de nível raiz. Seria ruim se eu mudasse o proprietário desse diretório para o usuário normal como aquele dir era para root, eu apenas desinstalei o jupyter e instalei novamente no meu diretório inicial e tudo funcionou perfeitamente para mim

Sou um usuário win10 e recebo este erro apesar de já ser o dono do referido diretório.

portanto, não tenho certeza se isso resolverá o problema para todos. Eu tive esse mesmo erro e nenhuma das soluções funcionou para mim. Eu verifico o caminho para onde o jupyter foi armazenado usando o juypter --path.
haverá uma lista de caminhos classificados por configuração, dados e tempo de execução. Eu entro em um caminho sob configuração,
parecia com isso
c: \ users \ dn.user \ appdata \ local \ programs \ python \ python37 \ etc \ jupyter
depois de mudar o diretório para aqui
Eu executo o jupyter novamente e nenhum erro. espero que isso ajude alguém

E quanto ao usuário do Windows ??

Talvez eu devesse ter esclarecido melhor. Eu sou um usuário do Windows e usei minha linha de comando normal

Quer dizer, eu estava usando o AWS WorkSpace e enfrento alguns problemas estranhos de localização de arquivo devido à estrutura interna do espaço de trabalho AWS !! Eu descobri isso mais tarde !! Mas você poderia fornecer a solução e o caminho relativo para resolver o problema de "permissão negada" para a criação e salvamento do arquivo !!

O método de Mazior me ajudou a consertar isso. Obrigado!

O mesmo que (XuuLiu comentou em 29 de abril de 2017): com Ubuntu 18.04 LS,
usar o comando jupyter-notebook resolve o problema para mim.

Nenhuma das opções acima resolveu, mas eu fiz chown em todos os sub /.ipynb-checkpoints do usuário e isso resolveu o problema.

Para os usuários do Windows:

Você precisa executar o prompt Executar como administrador do Anaconda para permitir a criação e modificação.

Minha memória estava cheia. Mudei algumas das coisas e está funcionando bem agora.

  • O problema é semelhante ao meu. Quando eu uso o comando jupyter notebook para iniciar o servidor, ele pode ser executado.
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).
  • Mas eu acesso o servidor por meio de um URL de host local no navegador Chrome, então o erro ocorre.
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
  • Informações do meu sistema
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
  • Minha solução: Usar o comando sudo jupyter notebook --allow-root em vez do comando jupyter notebook para iniciar o servidor. (Não sei por que funciona, mas realmente funcionou para mim.)
# ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
 ubuntu@ip-172-31-48-131:~/ssl$ sudo jupyter notebook --allow-root
Esta página foi útil?
0 / 5 - 0 avaliações