尝试在Ubuntu上运行ipython3笔记本服务器时出错

尝试在Ubuntu上运行ipython3笔记本服务器时出错,ipython,ipython-notebook,jupyter,Ipython,Ipython Notebook,Jupyter,我遵循了设置ipython3服务器的步骤 这是我的ipython\u notebook\u 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 =

我遵循了设置ipython3服务器的步骤

这是我的
ipython\u notebook\u 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)
[E 19:52:02.413 NotebookApp]回调中出现异常(,)
回溯(最近一次呼叫最后一次):
文件“/home/ed/.local/lib/python3.4/site-packages/tornado/ioloop.py”,第866行,开头
handler_func(fd_obj,事件)
文件“/home/ed/.local/lib/python3.4/site packages/tornado/stack\u context.py”,第275行,空包装
返回fn(*args,**kwargs)
文件“/home/ed/.local/lib/python3.4/site packages/tornado/netutil.py”,第265行,在accept\u处理程序中
回调(连接、地址)
文件“/home/ed/.local/lib/python3.4/site packages/tornado/tcpserver.py”,第239行,在句柄连接中
do_handshake_on_connect=False)
文件“/home/ed/.local/lib/python3.4/site packages/tornado/netutil.py”,第501行,在ssl\u wrap\u套接字中
上下文=ssl\U选项到上下文(ssl\U选项)
文件“/home/ed/.local/lib/python3.4/site-packages/tornado/netutil.py”,第478行,在ssl\u-options\u-to\u上下文中
加载证书链(ssl\U选项['certfile'],ssl\U选项.get('keyfile',None))
ssl.SSLError:[ssl]PEM lib(_ssl.c:2536)
我在另外两台机器上设置了这个,没有问题。我不知道出了什么问题,可能是缺少了一个库,或者是一些我看不到的字幕错误

我正在Ubuntu 15.04上使用IPython 3.2.1和Python 3.4.3

有什么想法吗

朱皮特与伊皮顿的未来

IPython是一个不断发展的项目,具有越来越多的语言不可知组件。IPython 3.x是IPython的最后一个单片版本,包含笔记本服务器、qtconsole等。从IPython 4.0开始,该项目中与语言无关的部分:笔记本格式、消息协议、qtconsole、笔记本web应用程序等已转移到名为Jupyter的新项目中。IPython本身专注于交互式Python,其中一部分是为Jupyter提供Python内核

简而言之,笔记本不再是IPython项目的一部分,因此您应该查找“Jupyter笔记本”的关键字。切换到较新的Jupyter笔记本相当容易,只需按照文档(从或)安装模块和。程序几乎相同。然而,在完成所有这些之后,我仍然遇到同样的错误。我在github repo中找到了解决方案:

在对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

一些人报告说,这对他们不起作用,这个问题还没有结束,尽管这对我来说非常有效。此外,您可能需要清理以前的配置

# 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.

使用修改后的opessl命令

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

从@GeQi开始,确保在浏览器中使用HTTPS对我有效。

检查1:更新AWS EC2安全组中的入站规则,以获取22、443、8888

检查2:确保使用以下命令在certs文件夹中创建mycert.pem文件:

$openssl请求-x509-节点-365天-newkey rsa:2048-密钥输出 mycert.pem-out mycert.pem

选中3:passwd()>保存SHA密钥并将该密钥添加到jupyter\u notebook\u config.py中

检查4:使用 &如果连接不是专用的,请转至高级

有关详细信息:

似乎是ssl错误,您应该检查证书和密钥