如何在 Ubuntu 16.04 上设置 Jupyter 笔记本以运行 IPython

介绍

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

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

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

前提条件

要遵循本教程,您将需要以下内容:

  • Ubuntu 16.04 Droplet
  • 具有 sudo 特权的非根用户([Ubuntu 16.04 初始服务器设置(https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-16-04)解释了如何设置此功能)。

本教程中的所有命令都应该作为非根用户运行,如果命令需要 root 访问,则将被sudo提前。

步骤1:安装Python 2.7和Pip

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

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

1sudo apt-get update

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

1sudo 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:

1python --version

这将产生:

1[secondary_label Output]
2Python 2.7.11+

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

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

1pip --version

你应该做一些类似于以下的事情:

1[secondary_label Output]
2pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

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

第2步:安装Ipython和Jupyter笔记本

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

首先,安装ipython:

1sudo apt-get -y install ipython ipython-notebook

现在我们可以继续安装Jupyter笔记本:

1sudo -H pip install jupyter

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

1[secondary_label Output]
2You are using pip version 8.1.1, however version 8.1.2 is available.
3You should consider upgrading via the 'pip install --upgrade pip' command.

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

1sudo -H pip install --upgrade pip

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

1sudo -H pip install jupyter

步骤三:运行Jupyter笔记本

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

1jupyter notebook

如果您在安装了 JavaScript 的系统上运行 Jupyter,它仍然会运行,但可能会给您一个错误,说明 Jupyter 笔记本需要 JavaScript:

1[secondary_label Output]
2Jupyter Notebook requires JavaScript.
3Please enable it to proceed.
4...

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

Jupyter 笔记本的活动日志将打印到终端。当您运行 Jupyter 笔记本时,它将运行在特定端口号上。您运行的第一个笔记本通常会在端口8888上运行。

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

如果您在本地 Linux 计算机上运行 Jupyter 笔记本(而不是在 Droplet 上),您可以简单地导航到「localhost:8888」以连接到 Jupyter 笔记本。

在此时,您可以保持 SSH 连接打开并保持 Jupyter 笔记本运行,或者您可以退出应用程序并在设置 SSH 隧道后重新运行该应用程序。让我们保持简单并停止 Jupyter 笔记本流程。一旦我们有 SSH 隧道工作,我们将再次运行它。

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

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

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

下面的两个子部分描述了如何从 1) Mac 或 Linux 和 2) Windows 创建 SSH 隧道,请参阅本地计算机的子部分。

SSH隧道与Mac或Linux

如果您使用的是 Mac 或 Linux,则创建 SSH 隧道的步骤类似于 使用 Linux 或 Mac 使用 DigitalOcean Droplets 使用 SSH 密钥的使用方法指南,除非ssh命令中添加了额外的参数。

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

1ssh -L 8000:localhost:8888 your_server_username@your_server_ip

ssh命令会打开SSH连接,但-L指示本地(客户端)主机上的某个端口将被转移到某个主机和端口在远端(Droplet)。这意味着在Droplet上的第二个端口号(即88888)上运行的任何东西都将出现在本地计算机的第一个端口号(即8000)上。您应该将8888更改为Jupyter Notebook正在运行的端口。可选的是,将端口8000更改为您选择的端口(例如,如果8000被另一个流程使用)。使用一个大于或等于8000的端口(即8001,8002等),以避免使用另一个流程已经使用的端口。server_ern

1ssh -L 8000:localhost:8888 [email protected]

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

1jupyter notebook

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

SSH 隧道与 Windows 和 Putty

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

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

Set Hostname for SSH Tunnel

接下来,点击左下角的 SSH以扩展菜单,然后点击 隧道. 输入本地端口号以便在本地计算机上访问Jupyter。 选择8000或更大(即8001,8002)以避免其他服务使用的端口,并将目的地设置为localhost:8888,其中:8888是Jupyter笔记本正在运行的端口号。

Forwarded ports list

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

步骤五:使用Jupyter笔记本

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

若要创建新笔记本文件,请从右上角的推卸菜单中选择 > ** Python 2**:

Create a new Python 2 notebook

这将打开笔记本. 现在我们可以在单元格中运行 Python 代码或更改单元格以标记。 例如,通过从顶部导航栏点击 Cell > Cell Type > Markdown来更改第一个单元格以接受标记。

1# Simple Equation
2
3Let us now implement the following equation:
4$$ y = x^2$$
5
6where $x = 2$

要将标记转换为丰富的文本,请按CTRL+ENTER,结果应如下:

results of markdown

您可以使用标记单元格来创建笔记并记录您的代码. 让我们执行这个简单的方程式并打印结果. 选择 插入 > 插入下面的单元格 以插入和单元格,然后输入以下代码:

1x = 2
2y = x*x
3print y

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

simple equation results

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

结论

恭喜!您现在应该能够使用Jupyter笔记本运行在Droplet上使用标记编写可复制的Python代码和笔记本。 要快速浏览Jupyter笔记本,请从上面的导航菜单中选择 Help > User Interface Tour

Published At
Categories with 技术
comments powered by Disqus