如何在 Ubuntu 18.04 上使用 Python 3 设置 Jupyter Notebook
介绍
Jupyter Notebook 是一个开源 Web 应用程序,可让您创建和共享交互式代码、可视化等。该工具可用于多种编程语言,包括 Python、Julia、R、Haskell 和 Ruby。它通常用于处理数据、统计建模和机器学习。
本教程将引导您设置 Jupyter Notebook 以从 Ubuntu 18.04 服务器运行,并教您如何连接和使用 Notebook。 Jupyter Notebooks(或简称为 Notebooks)是由 Jupyter Notebook 应用程序生成的文档,其中包含计算机代码和富文本元素(段落、方程式、图形、链接等)这有助于展示和分享可重复的研究。在本指南的最后一步,您将使用在远程服务器上运行的 Jupyter Notebook 运行 Python 3 代码。
先决条件
为了完成本指南,您需要一个带有防火墙的 Ubuntu 18.04 服务器实例和一个配置了 sudo 权限的非根用户。您可以通过运行我们的初始服务器设置教程来进行设置。
第 1 步 — 设置 Python
要开始此过程,请从 Ubuntu 存储库安装 Python 编程环境的依赖项。 Ubuntu 18.04 预装了 Python 3.6.9。稍后您将使用 Python 包管理器 pip 安装其他组件。
首先,更新本地 apt
包索引:
- sudo apt update
接下来,安装 pip 和 Jupyter 的一些依赖项使用的 Python 头文件:
- sudo apt install python3-pip python3-dev
您现在可以继续设置 Python 虚拟环境。
第 2 步 — 为 Jupyter 创建 Python 虚拟环境
安装一些依赖项后,您可以创建一个 Python 虚拟环境来管理您的项目。 Jupyter 将被安装到这个虚拟环境中。
您将需要访问可以使用 pip 安装的 virtualenv
命令。
首先,通过键入升级 pip:
- sudo -H pip3 install --upgrade pip
然后使用以下命令安装 virtualenv
:
- sudo -H pip3 install virtualenv
-H
标志确保安全策略将 home
环境变量设置为目标用户的主目录。
安装了 virtualenv
后,您就可以开始构建您的环境了。创建并移动到一个目录中,您可以在其中保存项目文件。以下示例目录称为 my_project_dir
。使用对您和您正在从事的工作有意义的名称。
通过键入以下命令创建您的目录:
- mkdir ~/my_project_dir
使用以下命令移至 my_project_dir
:
- cd ~/my_project_dir
在项目目录中,创建一个 Python 虚拟环境。本教程将环境称为 my_project_env
,但同样,您可以将其命名为与您的项目相关的名称。
- virtualenv my_project_env
这会在您的 my_project_dir
目录中创建一个名为 my_project_env
的目录。在内部,它将安装本地版本的 Python 和本地版本的 pip。您可以使用它为 Jupyter 安装和配置隔离的 Python 环境。
在安装 Jupyter 之前,激活虚拟环境。您可以通过键入以下内容来做到这一点:
- source my_project_env/bin/activate
您的提示应更改为指示您现在在类似于此的 Python 虚拟环境中操作:
-
您现在已准备好将 Jupyter 安装到这个虚拟环境中。
第 3 步 — 安装 Jupyter
在您的虚拟环境处于活动状态的情况下,使用 pip 的本地实例安装 Jupyter。
注意:当虚拟环境被激活时(当你的提示符前面有 (my_project_env)
时),使用 pip
而不是 pip3
,即使你使用 Python 3。无论 Python 版本如何,虚拟环境的工具副本始终命名为 pip
。
- pip install jupyter
此时,您已经成功安装了运行 Jupyter 所需的所有软件。您现在可以启动笔记本服务器。
第 4 步 — 运行 Jupyter Notebook
您现在拥有运行 Jupyter Notebook 所需的一切。要运行它,请执行以下命令:
- jupyter notebook
Jupyter Notebook 的活动日志将打印到终端。当您运行 Jupyter Notebook 时,它会在特定端口号上运行。您运行的第一个 Notebook 通常使用端口 8888
。要检查运行 Jupyter Notebook 的特定端口号,请参阅用于启动它的命令的输出:
Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook 6.4.10 is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] or http://127.0.0.1:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]
To access the notebook, open this file in a browser:
file:///home/sammy/.local/share/jupyter/runtime/nbserver-7924-open.html
Or copy and paste one of these URLs:
http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
or http://127.0.0.1:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
如果您在本地计算机(而不是服务器)上运行 Jupyter Notebook,您可以导航到显示的 URL 以连接到 Jupyter Notebook。如果您在服务器上运行 Jupyter Notebook,则需要使用 SSH 隧道连接到服务器,如下一节所述。
此时,您可以保持 SSH 连接打开并保持 Jupyter Notebook 运行,或者您可以退出应用程序并在设置 SSH 隧道后重新运行它。
如果您想停止 Jupyter Notebook 进程,请按 CTRL + C
,键入 Y
,然后按 ENTER
进行确认。将显示以下输出:
Output[C 19:23:34.939 NotebookApp] Shutdown confirmed
[I 19:23:34.940 NotebookApp] Shutting down 0 kernels
[I 19:23:34.941 NotebookApp] Shutting down 0 terminals
您现在可以设置 SSH 隧道来访问笔记本。
第 5 步 — 使用 SSH 隧道连接到服务器
Jupyter Notebook 在服务器上的特定端口上运行(例如 :8888
、:8889
等)。 SSH 隧道使您能够安全地连接到服务器的端口。
接下来的两小节介绍如何从 Mac、Linux 和 Windows 操作系统创建 SSH 隧道。请参阅您本地计算机的小节。
使用 Mac 或 Linux 的 SSH 隧道
如果您使用的是 Mac 或 Linux,创建 SSH 隧道的步骤类似于使用 SSH 登录远程服务器,只是 ssh
命令中有额外的参数。
可以通过在新的本地终端窗口中运行以下 SSH 命令来完成 SSH 隧道:
- ssh -L 8888:localhost:8888 your_server_username@your_server_ip
ssh
命令打开 SSH 连接,但 -L
指定本地(客户端)主机上的给定端口将转发到远程主机上的给定主机和端口端(服务器)。这意味着在服务器上的第二个端口号(例如 8888
)上运行的任何内容都将出现在第一个端口号(例如 8888)上mark>
) 在您的本地计算机上。
可选择将端口 8888
更改为您选择的端口,以避免使用已被另一个进程使用的端口。
server_username
是您在您创建的服务器上的用户名(例如 sammy),your_server_ip
是您服务器的 IP 地址。
例如,对于用户名 sammy
和服务器地址 203.0.113.0
,命令将是:
- ssh -L 8888:localhost:8888 sammy@203.0.113.0
如果在运行 ssh -L
命令后没有错误消息,您可以进入您的编程环境并运行 Jupyter Notebook:
- jupyter notebook
您将收到带有 URL 的输出。在本地计算机上的 Web 浏览器中,使用以 http://localhost:8888
开头的 URL 打开 Jupyter Notebook Web 界面。确保包含令牌号,或者在 http://localhost:8888
出现提示时输入令牌号字符串:
Output...
[I 21:23:21.361 NotebookApp] The Jupyter Notebook 6.4.10 is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
...
使用 Windows 和 Putty 建立 SSH 隧道
如果您使用的是 Windows,则可以使用 Putty 创建 SSH 隧道。
首先,在主机名(或 IP 地址)字段中输入服务器 URL 或 IP 地址,如下所示:

接下来,单击左窗格底部的 SSH 以展开菜单,然后单击隧道。输入要用于访问本地计算机上的 Jupyter 的本地端口号。选择 8000
或更高版本以避免端口被其他服务使用,并将目标设置为 localhost:8888
其中 :8888
是 Jupyter Notebook 运行的端口号。
单击添加按钮,端口应出现在转发端口列表中:

最后,单击“打开”按钮通过 SSH 连接到服务器并通过隧道连接所需的端口。在 Web 浏览器中导航到 http://localhost:8000
(或您选择的端口)以连接到在服务器上运行的 Jupyter Notebook。确保包含令牌号,或者在 http://localhost:8000
出现提示时输入令牌号字符串。
无论您是在 Mac/Linux 操作系统还是 Windows 中进行连接,您现在都应该通过 SSH 隧道连接到您的服务器。您现在可以在 Web 浏览器中使用 Jupyter Notebook。
第 6 步 — 使用 Jupyter Notebook
如果您当前没有运行 Jupyter Notebook,请使用 jupyter notebook
命令启动它:
- jupyter notebook
您现在应该使用网络浏览器连接到它。 Jupyter Notebook 是一个非常强大的工具,具有许多功能。本节将概述一些基本功能,以帮助您开始使用 Notebook。 Jupyter Notebook 将显示其运行目录中的所有文件和文件夹,因此当您处理项目时,请确保从项目目录启动它。
要创建新的笔记本文件,请从右上角的下拉菜单中选择新建 > Python 3:

这将打开一个笔记本。您现在可以在单元格中运行 Python 代码或将单元格更改为降价。例如,通过单击顶部导航栏中的“单元格”>“单元格类型”>“Markdown”,将第一个单元格更改为接受 Markdown。您现在可以使用 Markdown 编写笔记,甚至可以将用 LaTeX 编写的方程式放在 $$
符号之间。例如,在将其更改为 markdown 后,在单元格中键入以下内容:
# First Equation
Let us now implement the following equation:
$$ y = x^2$$
where $x = 2$
要将 markdown 转换为富文本,请按 CTRL + ENTER
,结果应如下所示:

您可以使用降价单元格来做笔记和记录您的代码。要实现该等式并打印结果,请单击顶部单元格,然后按 ALT + ENTER
在其下方添加一个单元格。在新单元格中输入以下代码。
x = 2
y = x**2
print(y)
要运行代码,请按 CTRL + ENTER
。您将收到以下结果:

您现在可以像在任何其他 Python 开发环境中一样导入模块和使用 Notebook。
结论
您现在应该能够使用 Jupyter Notebook 在 Markdown 中编写可重现的 Python 代码和注释。要从界面中快速浏览 Jupyter Notebook,请从顶部导航菜单中选择帮助 > 用户界面浏览以了解更多信息。
从这里开始,您可以通过阅读 Data Analysis and Visualization with pandas and Jupyter Notebook in Python 3 来开始数据分析和可视化项目。
如果您有兴趣深入了解,可以阅读我们的时间序列可视化和预测系列。