如何在Ubuntu18.04上使用Python3设置JupyterNotebook

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

介绍

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 权限的非 root 用户。 您可以通过我们的 初始服务器设置教程 来学习如何设置它。

第 1 步 — 设置 Python

要开始这个过程,我们将从 Ubuntu 存储库安装 Python 编程环境所需的依赖项。 Ubuntu 18.04 预装了 Python 3.6。 稍后我们将使用 Python 包管理器 pip 安装其他组件。

我们首先需要更新本地的apt包索引,然后下载安装包:

sudo apt update

接下来,安装 pip 和 Python 头文件,它们由 Jupyter 的一些依赖项使用:

sudo apt install python3-pip python3-dev

我们现在可以继续设置一个 Python 虚拟环境,我们将在其中安装 Jupyter。

第 2 步 — 为 Jupyter 创建 Python 虚拟环境

现在我们已经准备好 Python 3、它的头文件和 pip,我们可以创建一个 Python 虚拟环境来管理我们的项目。 我们将把 Jupyter 安装到这个虚拟环境中。

为此,我们首先需要访问可以使用 pip 安装的 virtualenv 命令。

通过键入以下命令升级 pip 并安装软件包:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

-H 标志确保安全策略将 home 环境变量设置为目标用户的主目录。

安装 virtualenv 后,我们就可以开始构建我们的环境了。 创建并移动到一个目录,我们可以在其中保存我们的项目文件。 我们将其称为 my_project_dir,但您应该使用对您和您正在处理的内容有意义的名称。

mkdir ~/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 虚拟环境中操作。 它看起来像这样:(my_project_env)user@host:~/my_project_dir$

您现在已准备好将 Jupyter 安装到此虚拟环境中。

第 3 步 — 安装 Jupyter

在您的虚拟环境处于活动状态后,使用本地 pip 实例安装 Jupyter。

注意:当虚拟环境被激活时(当你的提示前面有(my_project_env)时),使用pip而不是pip3,即使你正在使用蟒蛇 3。 无论 Python 版本如何,该工具的虚拟环境副本始终命名为 pip


pip install jupyter

至此,您已经成功安装了运行 Jupyter 所需的所有软件。 我们现在可以启动 Notebook 服务器了。

第 4 步 — 运行 Jupyter Notebook

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

jupyter notebook

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

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/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 is running at:
[I 21:23:21.361 NotebookApp] http://localhost: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]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

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

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

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

我们现在将设置一个 SSH 隧道,以便我们可以访问 Notebook。

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

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

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

使用 Mac 或 Linux 建立 SSH 隧道

如果您使用的是 Mac 或 Linux,创建 SSH 隧道的步骤与使用 SSH 登录远程服务器类似,只是在 ssh 命令中有额外的参数。 本小节将概述 ssh 命令中成功隧道所需的附加参数。

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

ssh -L 8888:localhost:8888 your_server_username@your_server_ip

ssh 命令打开一个 SSH 连接,但 -L 指定本地(客户端)主机上的给定端口将被转发到远程端(服务器)上的给定主机和端口。 这意味着无论在第二个端口号上运行什么(例如 服务器上的8888)会出现在第一个端口号(例如 8888)在本地计算机上。

可选择将端口 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 出现提示时输入令牌号字符串。

SSH 隧道与 Windows 和 Putty

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

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

接下来,单击左窗格底部的 SSH 以展开菜单,然后单击 Tunnels。 输入要用于访问本地计算机上的 Jupyter 的本地端口号。 选择 8000 或更大以避开其他服务使用的端口,并将目标设置为 localhost:8888 其中 :8888 是运行 Jupyter Notebook 的端口号。

现在单击 Add 按钮,端口应出现在 Forwarded ports 列表中:

最后,单击 Open 按钮通过 SSH 连接到服务器并隧道所需的端口。 在 Web 浏览器中导航到 http://localhost:8000(或您选择的任何端口)以连接到服务器上运行的 Jupyter Notebook。 确保包含令牌号,或在 http://localhost:8000 出现提示时输入令牌号字符串。

第 6 步 — 使用 Jupyter Notebook

本节介绍了使用 Jupyter Notebook 的基础知识。 如果您当前没有运行 Jupyter Notebook,请使用 jupyter notebook 命令启动它。

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

要创建一个新的 Notebook 文件,请从右上角的下拉菜单中选择 New > Python 3

这将打开一个笔记本。 我们现在可以在单元格中运行 Python 代码或将单元格更改为 markdown。 例如,通过单击顶部导航栏中的 Cell > Cell Type > 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,请从顶部导航菜单中选择 Help > User Interface Tour 以了解更多信息。

从这里开始,您可以通过阅读 Data Analysis and Visualization with pandas and Jupyter Notebook in Python 3 来开始数据分析和可视化项目。

如果您有兴趣深入了解,可以阅读我们关于 时间序列可视化和预测 的系列文章。