Ошибка при попытке запустить сервер ноутбуков ipython3 в Ubuntu

Я следовал инструкциям по настройке сервера ipython3. .

Вот мой ipython_notebook_config.py:

c.NotebookApp.ip = '*'
c.NotebookApp.certfile = u'/home/ed/.ipython/profile_default/ds.pem'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha512:..mykey...'
c.NotebookApp.port = 20000

Когда я запускаю блокнот, это то, что я получаю:

ipython3 notebook                                                                                 ~
[I 19:51:50.443 NotebookApp] Using MathJax from CDN: https://cdn.mathjax.org/mathjax/latest/MathJax.js
[I 19:51:50.476 NotebookApp] Serving notebooks from local directory: /home/ed
[I 19:51:50.476 NotebookApp] 0 active kernels 
[I 19:51:50.476 NotebookApp] The IPython Notebook is running at: https://[all ip addresses on your system]:20000/
[I 19:51:50.476 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation)

Когда я пытаюсь подключиться к этой машине извне, я получаю сообщение об ошибке:

[E 19:52:02.413 NotebookApp] Exception in callback (<socket.socket fd=5, family=AddressFamily.AF_INET, type=2049, proto=6, laddr=('0.0.0.0', 20000)>, <function wrap.<locals>.null_wrapper at 0x7f766269a488>)
    Traceback (most recent call last):
      File "/home/ed/.local/lib/python3.4/site-packages/tornado/ioloop.py", line 866, in start
        handler_func(fd_obj, events)
      File "/home/ed/.local/lib/python3.4/site-packages/tornado/stack_context.py", line 275, in null_wrapper
        return fn(*args, **kwargs)
      File "/home/ed/.local/lib/python3.4/site-packages/tornado/netutil.py", line 265, in accept_handler
        callback(connection, address)
      File "/home/ed/.local/lib/python3.4/site-packages/tornado/tcpserver.py", line 239, in _handle_connection
        do_handshake_on_connect=False)
      File "/home/ed/.local/lib/python3.4/site-packages/tornado/netutil.py", line 501, in ssl_wrap_socket
        context = ssl_options_to_context(ssl_options)
      File "/home/ed/.local/lib/python3.4/site-packages/tornado/netutil.py", line 478, in ssl_options_to_context
        context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
    ssl.SSLError: [SSL] PEM lib (_ssl.c:2536)

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

Я использую IPython 3.2.1., Python 3.4.3 в Ubuntu 15.04.

Любые идеи?


person enedene    schedule 31.07.2015    source источник
comment
похоже на ошибку ssl, вы должны проверить сертификаты и ключи   -  person Skorpeo    schedule 02.08.2015


Ответы (3)


Использование исправленной команды opessl

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem

от @GeQi и убедитесь, что HTTPS в браузере работает на меня.

person gregn    schedule 09.11.2015

Проверка 1. Обновите входящие правила в группе безопасности AWS EC2 для 22, 443, 8888.

Проверка 2. Убедитесь, что вы создали файл mycert.pem в папке certs с помощью следующей команды:

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem

Проверка 3: passwd()> Сохранить ключ SHA и добавить этот ключ в jupyter_notebook_config.py

проверка 4: используйте https://public-DNS-of-EC2-Instance:8888 & перейти к расширенному, если соединение не является приватным...

Подробнее: https://github.com/prakashpy/miscellaneous/tree/master/jupyter-notebook-on-aws-ec2

person Patel    schedule 04.10.2018

Jupyter и будущее IPython

IPython — это растущий проект, в котором компоненты становятся все более независимыми от языка. IPython 3.x был последним монолитным выпуском IPython, содержащим сервер ноутбуков, qtconsole и т. д. Начиная с IPython 4.0, не зависящие от языка части проекта: формат ноутбука, протокол сообщений, qtconsole, веб-приложение ноутбука и т. д. перешли к новым проектам под названием Jupyter. Сам IPython ориентирован на интерактивный Python, частью которого является предоставление ядра Python для Jupyter.

Короче говоря, блокнот больше не является частью проекта IPython, поэтому вам следует искать ключевые слова блокнота Jupyter. Переключиться на более новую записную книжку Jupyter довольно легко, просто следуйте инструкциям (из здесь или здесь), чтобы установить модуль и настроить общедоступный сервер. Процедура почти идентична. Однако, закончив все это, я все еще сталкиваюсь с той же SSLError. Я нашел решение здесь в репозитории github:

У меня это сработало после небольшого изменения параметров openssl. я сохраняю и ключ, и сертификат в одном файле «mycert.pem». оригинал: $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem моя версия: $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem

Некоторые сообщают, что у них это не сработает, и проблема еще не закрыта, хотя у меня это отлично работает. Кроме того, вы можете очистить прежний файл config.

# remove the earlier created ipython profile
$ ipython profile locate nbserver
/home/ubuntu/.ipython/profile_nbserver
$ rm -r /home/ubuntu/.ipython/profile_nbserver
$ ipython profile locate nbserver
[ProfileLocate] CRITICAL | Profile 'nbserver' not found.
person Qi Ge    schedule 12.10.2015