如何在Ubuntu 16.04上设置Jupyter Notebook以运行IPython

介绍

IPython是Python的交互式命令行界面。Jupyter Notebook提供了多种语言的交互式Web界面,包括IPython。

本文将指导您设置服务器以运行Jupyter Notebook,并教您如何连接和使用Notebook。Jupyter Notebook(或简称笔记本)是由Jupyter Notebook应用程序生成的文档,其中包含计算机代码(例如Python)和富文本元素(段落,方程式,图形,链接等),这有助于呈现可重复的研究。

在本教程的最后,您将能够使用在远程服务器上运行的Ipython和Jupyter Notebook来运行Python 2.7代码。出于本教程的目的,使用Python 2(2.7.x),因为许多数据科学,科学计算和高性能计算库支持2.7而不是3.0+。

准备

要学习本教程,您需要具备以下条件:

本教程中的所有命令都应以非root用户身份运行。如果命令需要root访问权限,则前面会有sudo使用Ubuntu 16.04的初始服务器设置说明了如何添加用户并为他们提供sudo访问权限。

第一步 - 安装Python 2.7和Pip

在本节中,我们将安装Python 2.7和Pip。

首先,更新系统的包索引。这将确保旧的或过时的包不会干扰安装。

sudo apt-get update

接下来,安装Python 2.7,Python Pip和Python开发:

sudo apt-get -y install python2.7 python-pip python-dev

安装python2.7将更新到最新版本的Python 2.7,python-pip将安装Pip,它允许我们管理我们想要使用的Python包。Jupyter的某些依赖项可能需要编译,在这种情况下,您需要能够编译Python C扩展,因此我们也要安装python-dev

要验证您是否安装了python:

python --version

这将输出:

Python 2.7.11+

根据最新版本的Python 2.7,输出可能会有所不同。

您还可以使用以下命令检查是否安装了pip:

pip --version

您应该类似于以下内容:

pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

同样,根据您的pip版本,输出可能会略有不同。

第二步 - 安装Ipython和Jupyter Notebook

在本节中,我们将安装Ipython和Jupyter Notebook。

首先,安装Ipython:

sudo apt-get -y install ipython ipython-notebook

现在我们可以继续安装Jupyter Notebook:

sudo -H pip install jupyter

根据Ubuntu apt-get存储库中pip的版本,尝试安装Jupyter时可能会出现以下错误:

You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

如果是这样,您可以使用pip将pip升级到最新版本:

sudo -H pip install --upgrade pip

升级pip,然后再次尝试安装Jupyter:

sudo -H pip install jupyter

第三步 - 运行Jupyter Notebook

您现在拥有运行Jupyter Notebook所需的一切!要运行它,请执行以下命令:

jupyter notebook

如果您在安装了JavaScript的系统上运行Jupyter,它仍然会运行,但它可能会给您一个错误,指出Jupyter Notebook需要JavaScript:

Jupyter Notebook requires JavaScript.
Please enable it to proceed.
...

要忽略该错误,您可以按Q,然后按Y确认。

Jupyter Notebook的活动记录将打印到终端。当您运行Jupyter Notebook时,它将在特定的端口号上运行。您运行的第一个笔记本通常在端口上运行8888。要检查Jupyter Notebook正在运行的特定端口号,请参阅用于启动它的命令的输出:

[I NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels 
[I NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

如果您在本地Linux计算机(而不是CVM)上运行Jupyter Notebook,您只需导航到连接到Jupyter Notebook。如果您在CVM上运行Jupyter Notebook,则需要使用SSH隧道连接到localhost:8888服务器,如下一节所述。

此时,您可以保持SSH连接打开并保持Jupyter Notebook运行,或者可以退出应用程序并在设置SSH隧道后重新运行它。让我们保持简单并停止Jupyter Notebook流程。一旦我们进行了SSH隧道工作,我们将再次运行它。要停止Jupyter Notebook进程,请按CTRL+C,键入Y,然后单击ENTER以确认。将显示以下内容:

[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels

第四步 - 使用SSH隧道连接到服务器

在本节中,我们将学习如何使用SSH通道连接到Jupyter Notebook Web界面。由于Jupyter Notebook在CVM上的特定端口上运行(例如:8888:8889等等),因此SSH隧道可以安全地连接到CVM的端口。

接下来的两个小节描述了如何从1)Mac或Linux及2)Windows创建SSH通道。

使用Mac或Linux进行SSH通道连接

如果您使用的是Mac或Linux,本小节将概述命令ssh所需的其他参数。

可以通过运行以下SSH命令来完成SSH通道:

ssh -L 8000:localhost:8888 your_server_username@your_server_ip

ssh命令打开SSH连接,但-L指定将本地(客户端)主机上的给定端口转发到远程端的给定主机和端口(CVM)。这意味着在CVM上的第二个端口号(即8888)上运行的任何内容,都将显示在本地计算机上的第一个端口号(即8000)上。您应该更改8888为运行Jupyter Notebook的端口。(可选)将8000端口更改为您选择的端口(例如,如果其他进程使用该8000端口)。使用端口大于或等于8000(即80018002等),以避免使用一个端口已经在另一个进程中使用。server_username是您创建的CVM上的用户名(这里是sammy)your_server_ip是CVM的IP地址。例如,对于用户名sammy和服务器地址111.111.111.111,命令将是:

ssh -L 8000:localhost:8888 sammy@111.111.111.111

如果在运行ssh -L命令后没有显示错误,则可以运行Jupyter Notebook:

jupyter notebook

现在,从本地计算机上的Web浏览器打开Jupyter Notebook Web界面http://localhost:8000(或您选择的任何端口号)。

使用Windows和Putty进行SSH隧道连接

如果您使用的是Windows,则还可以使用Putty轻松创建SSH隧道。

首先,输入服务器URL或IP地址作为主机名,如下所示:

接下来,单击左窗格底部的SSH以展开菜单,然后单击 “Tunnels”。输入用于访问本地计算机上的Jupyter的本地端口号。选择 8000或更大(即80018002等),以避免由其它服务使用了端口,当Jupyter Notebook上运行:8888端口时设置localhost:8888为目标。现在单击 “Add”按钮,端口应显示在Forwarded ports列表中:

最后,单击“ Open”按钮以通过SSH连接到服务器并隧道连接所需的端口。导航到Web浏览器中的http://localhost:8000(或您选择的任何端口)以连接到服务器上运行的Jupyter Notebook。

第五步 - 使用Jupyter Notebook

本节介绍使用Jupyter Notebook的基础知识。此时您应该运行Jupyter Notebook,并且应该使用Web浏览器连接到它。Jupyter Notebook功能强大。本节将概述开始使用笔记本的基本功能。Jupyter Notebook将自动显示运行目录中的所有文件和文件夹。

要创建新的笔记本文件,请从右上角的下拉菜单中选择New > Python 2

这将打开一个notebook。我们现在可以在单元格中运行Python代码或将单元格更改为markdown。例如,通过单击顶部导航栏中的“ 单元格” >“ 单元格类型” >“ Markdown”,将第一个单元格更改为接受Markdown 。我们现在可以使用Markdown编写注释,甚至可以通过将它们放在$$符号之间来包含用LaTeX编写的方程式。例如,在将其更改为markdown后,在单元格中输入以下内容:

# Simple Equation
​
Let us now implement the following equation:
$$ y = x^2$$
​
where $x = 2$

要将降价转换为rich文本,请按CTRL+ENTER,以下结果应为:

您可以使用markdown单元格做笔记并记录您的代码。让我们实现这个简单的等式并打印结果。选择“ 插入”>“ 在下面插入单元格”以插入并单元格并输入以下代码:

x = 2
y = x*x
print y

要运行代码,请按CTRL+ENTER。以下应该是结果:

您现在可以像使用任何其他Python开发环境一样包含库和使用notebook!

结论

恭喜!您现在应该可以使用在CVM上运行的Jupyter notebook,使用markdown编写可重现的Python代码和注释。要快速浏览Jupyter notebook,请从顶部导航菜单中选择“ 帮助” >“ 用户界面”进行阅读。

想要了解更多关于Ubuntu的开源信息教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Set Up a Jupyter Notebook to Run IPython on Ubuntu 16.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏顶级程序员

为什么文件名要小写?

来自:阮一峰的网络日志 链接:www.ruanyifeng.com/blog/2017/02/filename-should-be-lowercase.htm...

30250
来自专栏北京马哥教育

linux bash环境变量简单总结

一.环境变量简介 Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都 是相同的,这个默认环境实际...

35960
来自专栏云计算教程系列

如何安装,运行和连接到远程服务器上的Jupyter Notebook

Jupyter Notebook是一个开源的交互式Web应用程序,允许您使用40多种编程语言编写和运行计算机代码,包括Python,R,Julia和Scala。...

98020
来自专栏Pythonista

Shell编程实战

Shell脚本语言是实现Linux/Unix系统管理及自动化运维所必须的重要工具,Linux系统的底层以及基础应用软件的核心大都涉及Shell脚本的内容。

31920
来自专栏后端技术探索

利用 PHP 名称空间编写可读且可维护的代码

“Conan 是我榜样。” 如果我在餐桌上说这句话,我儿子会以为我说的是游戏 “野蛮人柯南”,而我妻子会以为我说的是脱口秀主持人 Conan O'Brien。这...

13620
来自专栏技术专栏

慕课网Flask构建可扩展的RESTful API-3. 自定义异常对象

因为注册的形式就非常多,所以我们不可能用万能的方式来解决。如果我们不能很好的处理多种多样的形式,我们的代码就会非常的杂乱

15320
来自专栏Python爱好者

Java基础笔记11

14340
来自专栏瓜大三哥

UVM(十)之config机制

UVM(十)之config机制 1 验证平台中要配置的众多的参数 在一个验证平台中,有众多的参数需要配置。如在mac_driver中,按照以太网相关协议的规定,...

36060
来自专栏企鹅号快讯

如何深入 Python 虚拟机追查 HTTP 服务 core dump 导致 502 的问题

作者 今日头条技术团队 概述 今日头条目前大部分 Python 的 HTTP 服务都是用 uWSGI 托管 Python 多进程的 Django 或者 Fla...

21570
来自专栏数据库

第七节 关联映射之多对多

本次用 MyBatis 实现多对多关联映射:一个学生可以选多门课,一个课也可以由多个学生选。 一、 数据库准备 为了测试方便,我们在这里新建一个数据库并取名my...

28750

扫码关注云+社区

领取腾讯云代金券