如何设置JupyterNotebook以在Ubuntu16.04上运行IPython

来自菜鸟教程
跳转至:导航、​搜索

介绍

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

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

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

先决条件

要学习本教程,您将需要以下内容:

本教程中的所有命令都应以非 root 用户身份运行。 如果该命令需要 root 访问权限,它将在前面加上 sudoUbuntu 16.04 的初始服务器设置 解释了如何添加用户并授予他们 sudo 访问权限。

第 1 步 — 安装 Python 2.7 和 Pip

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

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

sudo apt-get update

接下来,安装 Python 2.7、Python Pip 和 Python Development:

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

这将输出:

OutputPython 2.7.11+

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

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

pip --version

您应该类似于以下内容:

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

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

第 2 步 — 安装 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 时可能会收到以下错误:

OutputYou 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

第 3 步 — 运行 Jupyter Notebook

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

jupyter notebook

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

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

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

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

Output[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 计算机(而不是 Droplet)上运行 Jupyter Notebook,您只需导航到 localhost:8888 即可连接到 Jupyter Notebook。 如果您在 Droplet 上运行 Jupyter Notebook,则需要使用 SSH 隧道连接到服务器,如下一节所述。

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

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

第 4 步 — 使用 SSH 隧道连接到服务器

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

接下来的两个小节描述了如何从 1) Mac 或 Linux 和 2) Windows 创建 SSH 隧道。 请参阅有关您本地计算机的小节。

使用 Mac 或 Linux 建立 SSH 隧道

如果您使用的是 Mac 或 Linux,则创建 SSH 隧道的步骤类似于 How To Use SSH Keys with DigitalOcean Droplets using Linux or Mac 指南,只是在 ssh 命令。 本小节将概述 ssh 命令中成功隧道所需的附加参数。

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

ssh -L 8000:localhost:8888 your_server_username@your_server_ip

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

ssh -L 8000:localhost:8888 sammy@111.111.111.111

如果运行 ssh -L 命令后没有出现错误,您可以运行 Jupyter Notebook:

jupyter notebook

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

SSH 隧道与 Windows 和 Putty

如果您使用的是 Windows,您还可以使用 Putty 轻松创建 SSH 隧道,如 如何在 DigitalOcean Droplets(Windows 用户) 上使用 PuTTY 中的 SSH 密钥。

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

接下来,单击左窗格底部的 SSH 以展开菜单,然后单击 Tunnels。 输入用于访问本地计算机上的 Jupyter 的本地端口号。 选择8000或更大(即80018002等)以避开其他服务使用的端口,并将目的地设置为localhost:8888其中[X143X ] 是运行 Jupyter Notebook 的端口号。 现在单击 Add 按钮,端口应出现在 Forwarded ports 列表中:

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

第 5 步 — 使用 Jupyter Notebook

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

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

这将打开一个笔记本。 我们现在可以在单元格中运行 Python 代码或将单元格更改为 markdown。 例如,通过单击顶部导航栏中的 Cell > Cell Type > Markdown 将第一个单元格更改为接受 Markdown。 我们现在可以使用 Markdown 写笔记,甚至可以将用 LaTeX 编写的方程式放在 $$ 符号之间。 例如,在将其更改为 markdown 后,在单元格中键入以下内容:

# Simple Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

要将markdown变成富文本,按CTRL+ENTER,结果应该如下:

您可以使用降价单元格来做笔记和记录您的代码。 让我们实现这个简单的方程并打印结果。 选择 Insert > Insert Cell below 插入单元格并输入以下代码:

x = 2
y = x*x
print y

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

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

结论

恭喜! 您现在应该能够使用在 Droplet 上运行的 Jupyter notebook 使用 markdown 编写可重现的 Python 代码和注释。 要快速浏览 Jupyter notebook,请从顶部导航菜单中选择 Help > User Interface Tour