Ipython: Невозможно открыть или создать новые записные книжки Jupyter

Созданный на 17 нояб. 2015  ·  33Комментарии  ·  Источник: ipython/ipython

Недавно я недавно установил Ubuntu 14.04 на свой ноутбук и установил IPython 4 через anaconda. Однако я не могу открыть или загрузить какие-либо записные книжки, в том числе те, которые нормально открываются на моем рабочем столе. Когда я пытаюсь загрузить записную книжку, я получаю следующую ошибку: An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.

Терминал дает:

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 

Когда я пытаюсь создать новый блокнот, я получаю еще одну ошибку: Unexpected error while saving file: Dropbox/iPython Notebooks/Untitled.ipynb [Errno 13] Permission denied: '/home/ryan/.local/share/jupyter/notebook_secret' Это кажется более информативным, но я относительно новичок в Linux / python / всем этом.

Терминал дает:

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'

Было предложено включить вывод python -c "import IPython; print(IPython.sys_info())" , так что вот он:

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

Как уже упоминалось, я не эксперт в вопросах вычислений. Надеюсь, я не делаю глупостей. Я попытался удалить и переустановить anaconda, разные версии python, перезагрузить компьютер, а также попробовал решения, найденные здесь https://github.com/ipython/ipython/issues/2097 и здесь https://github.com / ipython / ipython / issues / 8294, поскольку они кажутся похожими.

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

Я решил эту проблему, изменив владельца каталога ~ / .local / share / jupyter с root на пользователя. Я не знаю, почему возникла эта проблема, поскольку этого не было в других моих системах, поэтому, возможно, это ошибка, и я оставлю ее здесь.

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

Я решил эту проблему, изменив владельца каталога ~ / .local / share / jupyter с root на пользователя. Я не знаю, почему возникла эта проблема, поскольку этого не было в других моих системах, поэтому, возможно, это ошибка, и я оставлю ее здесь.

Я только что сделал новую установку и столкнулся с той же проблемой.

Это исправление все еще работает.

Я использовал «sudo» до «jupyter notebook --ip 0.0.0.0», и у меня это сработало.

@metallikapo, когда я делаю то же самое, и если я открываю терминал, я вхожу в систему как root. Нехорошо.

Да, мы не рекомендуем запускать сервер ноутбука с sudo . Это также приведет к тому, что весь код в ваших записных книжках будет запускаться от имени пользователя root. Лучше изменить соответствующий файл / каталог, который будет принадлежать вашему пользователю, как обнаружил

Я использовал ноутбук sudo jupyter в Mac, он также работал в моей системе.

@metallikapo большое спасибо

Я использовал ноутбук sudo jupyter в Mac, он также работал в моей системе.

@metallikapo большое спасибо

Опять же, мы не рекомендуем работать с sudo, и ноутбук 5.0 по умолчанию откажется запускаться с правами root, так что это не решение.

Какую команду вы использовали? jupyter notebook, чтобы открыть записную книжку? У меня такая же проблема с ноутбуком jupyter . Но использование команды jupyter-notebook вместо этого решает проблему для меня.

как вы меняете владельца ноутбука jupyter?

Тогда какое решение лучше? @Carreau

Лучшее решение - исправить разрешения, чтобы Jupyter мог работать под вашей учетной записью обычного пользователя. Трудно дать точные инструкции для этого, потому что есть разные вещи, которые могут пойти не так и вызвать похожие ошибки. Но в целом вы захотите сделать что-то вроде этого:

  1. Посмотрите на сообщение об ошибке «Permission denied», которое вы получаете, и посмотрите, к какому файлу оно относится. Если он находится в вашем домашнем каталоге ( /home/username в Linux или /Users/username в Mac), применяются эти инструкции. Если это где-то еще, проблема может быть в другом.
  2. Откройте терминал и cd перейдите в папку, содержащую этот файл.
  3. Запустите ls -l чтобы увидеть там все файлы. Если файл есть, вы, вероятно, увидите, что его владельцем является root , а не ваше собственное имя пользователя. Это самая частая проблема. Если файла нет, вероятно, он не может его создать - поднимитесь на уровень выше и попробуйте то же самое в каталоге.
  4. Запустите sudo chown username:username filename чтобы изменить владельца (и группу) файла на своего пользователя. Если вы делаете это в каталоге, используйте флаг -R чтобы также изменить все файлы внутри него.

Вы также, вероятно, можете сделать это из файлового менеджера, но существует множество разных, поэтому мы не будем давать инструкций.

(Если это неясно, замените username своим именем пользователя в этих инструкциях)

Я использую систему Linux pynq FPGA, и это отлично решает мою проблему, спасибо! @takluyver

Привет Томас,

После того, как я выполнил код в блокноте Jupyter, я столкнулся с другим
проблема: каталог IPython ~ / .ipython не является доступным для записи местом, используя временную
каталог.

Вы знаете, что происходит не так?

Лучший,

Ю Ли
Компьютерные науки и инженерия,
Китайский университет Гонконга,
Шатин, Гонконг

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

(Если это неясно, замените имя пользователя своим именем в
эти инструкции)

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ipython/ipython/issues/8997#issuecomment-345688870 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AbRY_MLFebh-Y8ruW-vIi-e5ZJHy8H4aks5s4XgjgaJpZM4GkQxG
.

Проверьте разрешения ~/.ipython и попробуйте sudo chown username:username ~/ipython , также проверьте, что:

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

в частности, первый столбец начинается с drwx если это не так, вероятно, вам понадобится sudo chmod o+w ~/.ipython . Где o+w означает добавление разрешения W rite к O wner.

Лучше, чтобы chown эта папка принадлежала вашему пользователю. Использование chmod 777 означает, что любой пользователь может его читать или писать. Мы храним там некоторую секретную информацию, например, базу данных, используемую для отслеживания надежных записных книжек.

эта команда работает для меня:
cd ~ && sudo chown имя пользователя: имя пользователя .local / share /
не забудьте заменить имя пользователя своим собственным именем пользователя

@ liwg06
Это был правильный подход. Благодарность!

cd ~ && sudo chown имя пользователя: имя пользователя .local / share /

ТЕМ НЕ МЕНИЕ,
для меня этого было недостаточно. Мне пришлось вернуться к .local.

В случае Fedora вы также можете сделать:
sudo chown -R user:user /run/user/1000/jupyter/

Решение Debian, которое мне подошло:
В папке / run / user / 1000 / jupyter /:
chmod -R 0755 пользователь: пользователь

  • Простое предоставление разрешений на чтение не устранило мою ошибку разрешения.

Я столкнулся с той же проблемой, и затем я понял, что когда я запустил команду pip3 install jupyter, она установила jupyter в текущем каталоге, который был каталогом корневого уровня, было бы плохо, если бы я сменил владельца этого каталога на обычного пользователя как этот каталог был для root, я просто удалил jupyter и повторно установил его в свой домашний каталог, и все работало отлично для меня

Я пользователь win10, и у меня возникла эта ошибка, несмотря на то, что я уже являюсь владельцем указанного каталога.

поэтому не уверен, что это решит проблему для всех. У меня была такая же ошибка, и ни одно из решений не помогло мне. Я проверяю путь к тому месту, где хранился jupyter, используя juypter --path.
будет список путей, классифицированных по конфигурации, данным и времени выполнения. Я перехожу в путь под config,
выглядело так
c: \ users \ dn.user \ appdata \ local \ programs \ python \ python37 \ etc \ jupyter
после смены каталога сюда
Я снова запускаю jupyter и без ошибок. надеюсь, это поможет кому-то

А как насчет пользователя Windows ??

Может, мне следовало прояснить ситуацию получше. Я пользователь Windows и использовал обычную командную строку

Я имею в виду, что я использовал AWS WorkSpace и столкнулся с некоторыми странными проблемами с расположением файлов из-за внутренней структуры рабочего пространства AWS !! Разобрался позже !! Но не могли бы вы указать решение и относительный путь для решения проблемы «отказано в разрешении» для создания и сохранения файла !!

Исправить это мне помог метод Мазиора. Спасибо!

То же, что (XuuLiu прокомментировал 29 апреля 2017 г.): с Ubuntu 18.04 LS,
использование команды jupyter-notebook вместо этого решает проблему для меня.

Ничего из вышеперечисленного не помогло, но я показал пользователю все вспомогательные /.ipynb-checkpoints, и это помогло.

Для пользователей Windows:

Вам нужно запустить приглашение Anaconda « Запуск от имени администратора», чтобы вы могли создавать и изменять.

Моя память была переполнена. Я переместил кое-что, и теперь он работает нормально.

  • Проблема похожа на меня. Когда я использую команду jupyter notebook для запуска сервера, она может работать.
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).
  • Но я обращаюсь к серверу через URL-адрес localhost в браузере Chrome , тогда возникает ошибка.
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
  • Моя системная информация
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic
  • Мое решение: использование команды sudo jupyter notebook --allow-root вместо команды jupyter notebook для запуска сервера (я не знаю, почему это работает, но у меня это действительно сработало).
# ubuntu@ip-172-31-48-131:~/ssl$ jupyter notebook
 ubuntu@ip-172-31-48-131:~/ssl$ sudo jupyter notebook --allow-root
Была ли эта страница полезной?
0 / 5 - 0 рейтинги