如何在 Ubuntu 18.04 上用 Python 3 设置 Jupyter Notebook

介绍

Jupyter Notebook是一个开源的Web应用程序,允许您创建和共享交互式代码,可视化和更多。这个工具可以与多个编程语言,包括Python,Julia,R,Haskell和Ruby一起使用。

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

前提条件

为了完成本指南,您需要一个 Ubuntu 18.04 服务器实例,具有防火墙和配置了 sudo 特权的非 root 用户。

步骤 1 - 设置 Python

要开始这个过程,请从 Ubuntu 存储库中安装 Python 编程环境的依赖。Ubuntu 18.04 配备了 Python 3.6.9 预安装。

首先,更新本地「apt」包索引:

1sudo apt update

接下来,安装Pip和Python标题文件,这些文件被Jupyter的一些依赖使用:

1sudo apt install python3-pip python3-dev

现在您可以继续创建一个Python虚拟环境。

第2步:为Jupyter创建一个Python虚拟环境

安装了一些依赖,您可以创建一个Python虚拟环境来管理您的项目,Jupyter将被安装在这个虚拟环境中。

您需要访问可以用 pip 安装的virtualenv命令。

首先,通过键入升级 pip:

1sudo -H pip3 install --upgrade pip

然后用这个命令安装virtualenv:

1sudo -H pip3 install virtualenv

-H旗确保安全策略将家庭环境变量设置为目标用户的家庭目录。

安装了virtualenv,您可以开始创建您的环境,创建并移动到一个目录,您可以保留您的项目文件。下面的示例目录叫做my_project_dir

通过键入以下命令创建您的目录:

1mkdir ~/my_project_dir

使用此命令移动到my_project_dir:

1cd ~/my_project_dir

在项目目录中,创建一个Python虚拟环境.本教程将将环境称为my_project_env,但,再次,您可以称之为与您的项目相关的东西。

1virtualenv my_project_env

这将创建一个名为my_project_env的目录在你的my_project_dir目录中。内部,它将安装Python的本地版本和Pip的本地版本。

在安装 Jupyter 之前,请激活虚拟环境,您可以通过键入:

1source my_project_env/bin/activate

您的提示应该改变,以表示您现在正在运行类似于此的 Python 虚拟环境:

您现在已经准备好在这个虚拟环境中安装Jupyter。

步骤 3 – 安装 Jupyter

如果您的虚拟环境是活跃的,请使用Pip的本地实例安装Jupyter。

<$>[注] 注: 当虚拟环境被激活时(当您的提示具有(my_project_env)之前),使用pip而不是pip3,即使您正在使用Python 3. 虚拟环境的副本的工具总是被命名为pip,无论Python版本。

1pip install jupyter

此时,您已经成功安装了运行 Jupyter 所需的所有软件,您现在可以启动笔记本服务器。

第4步:运行Jupyter笔记本

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

1jupyter notebook

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

 1[secondary_label Output]
 2[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret
 3[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
 4[I 21:23:21.361 NotebookApp] The Jupyter Notebook 6.4.10 is running at:
 5[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
 6[I 21:23:21.361 NotebookApp]  or http://127.0.0.1:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
 7[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
 8[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
 9[C 21:23:21.361 NotebookApp]
10
11    To access the notebook, open this file in a browser:
12        file:///home/sammy/.local/share/jupyter/runtime/nbserver-7924-open.html
13    Or copy and paste one of these URLs:
14        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
15     or http://127.0.0.1:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

如果您在本地计算机上运行 Jupyter 笔记本 (而不是服务器),则可以导航到显示的 URL 以连接到 Jupyter 笔记本. 如果您在服务器上运行 Jupyter 笔记本,则需要使用 SSH 隧道连接到服务器,如下节所述。

在此时,您可以保持 SSH 连接打开并保持 Jupyter 笔记本运行,或者您可以退出应用并在设置 SSH 隧道后重新运行。

如果您想停止 Jupyter 笔记本流程,请按CTRL + C,键入Y,然后ENTER,以确认。

1[secondary_label Output]
2[C 19:23:34.939 NotebookApp] Shutdown confirmed
3[I 19:23:34.940 NotebookApp] Shutting down 0 kernels
4[I 19:23:34.941 NotebookApp] Shutting down 0 terminals

现在您可以设置一个SSH隧道来访问笔记本。

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

Jupyter 笔记本在服务器上的特定端口运行(如:8888、:8889 等)。

下面的两个子节描述了如何从 Mac、Linux 和 Windows 操作系统创建 SSH 隧道。

SSH隧道与Mac或Linux

如果您使用的是 Mac 或 Linux,创建 SSH 隧道的步骤类似于使用 SSH 登录您的远程服务器,但ssh命令中有额外的参数。

SSH隧道可以通过在新的本地终端窗口中运行以下SSH命令来完成:

1[environment local]
2ssh -L 8888:localhost:8888 your_server_username@your_server_ip

ssh命令打开 SSH 连接,但 -L 指示本地 (客户端) 主机上的某个端口要转发到给定的主机和偏远端口 (服务器) 的端口。

可选地将端口8888更改为您选择的端口,以避免另一个流程使用已使用的端口。

「server_username」是您所创建的服务器上的用户名(例如 sammy),而「your_server_ip」是您的服务器的IP地址。

例如,对于用户名sammy和服务器地址203.0.113.0,命令将是:

1[environment local]
2ssh -L 8888:localhost:8888 [email protected]

如果在运行ssh -L命令后没有错误消息,您可以进入您的编程环境并运行Jupyter笔记本:

1jupyter notebook

从本地计算机上的 Web 浏览器中,打开 Jupyter 笔记本 Web 接口,该 URL 以 http://localhost:8888 开头。 确保标记号包含,或者在提示到 http://localhost:8888 时输入标记号串:

1[secondary_label Output]
2...
3[I 21:23:21.361 NotebookApp] The Jupyter Notebook 6.4.10 is running at:
4[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
5...

SSH 隧道与 Windows 和 Putty

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

首先,如下所示,在 ** 主机名称(或 IP 地址)** 字段中输入服务器 URL 或 IP 地址:

Set Hostname for SSH Tunnel

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

点击添加按钮,然后端口应该出现在转发端口列表中:

Forwarded ports list

最后,点击打开按钮以通过SSH连接到服务器并隧道所需的端口。在网页浏览器中导航到http://localhost:8000(或您选择的端口)以连接到运行在服务器上的Jupyter笔记本。 确保标记号包含,或者在提示到http://localhost:8000时输入标记号串。

无论您是在 Mac/Linux 操作系统或 Windows 中连接,您现在都应该通过 SSH 隧道连接到您的服务器。

第6步:使用Jupyter笔记本

如果您目前没有运行Jupyter笔记本,请使用jupyter笔记本命令启动它:

1jupyter notebook

您现在应该使用Web浏览器连接到它。Jupyter笔记本是一个具有许多功能的非常强大的工具。本节将概述一些基本功能,以便您开始使用笔记本。Jupyter笔记本将显示它所运行的目录中的所有文件和文件夹,所以当您在项目上工作时,请确保从项目目录开始。

要创建一个新笔记本文件,请从右上角的下滑菜单中选择 > Python 3:

Create a new Python 3 notebook

这将打开笔记本. 现在您可以在单元格中运行 Python 代码或更改单元格以标记。 例如,通过从顶部导航栏点击 Cell > Cell Type > Markdown来更改第一个单元格以接受标记, 您现在可以使用标记编写笔记,甚至通过将它们放在$$$符号之间,将用 LaTeX编写的方程式包含在标记中。

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

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

results of markdown

您可以使用标记单元格创建笔记并记录您的代码。 要执行该方程式并打印结果,请单击顶部单元格,然后按ALT + ENTER,以添加下面的单元格。

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

要运行代码,请按CTRL + ENTER,您将收到以下结果:

first equation results

您现在有能力 导入模块并使用笔记本,就像您在任何其他Python开发环境中一样。

结论

您现在应该能够使用Jupyter笔记本在Markdown中编写可重复的Python代码和笔记本。 要从接口中快速浏览Jupyter笔记本,请从上面的导航菜单中选择 Help > User Interface Tour以获取更多信息。

从这里,您可以通过阅读 Python 中的 Pandas 和 Jupyter 笔记本的数据分析和可视化开始数据分析和可视化项目。

如果你有兴趣挖掘更多,你可以阅读我们的系列在 时间系列可视化和预测

Published At
Categories with 技术
comments powered by Disqus