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

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介

Jupyter Notebook 是一个开源的 Web 应用程序,可以让你创建和分享交互式代码、可视化等内容。这个工具可以与多种编程语言一起使用,包括 Python、Julia、R、Haskell 和 Ruby。它经常用于处理数据、统计建模和机器学习。

本教程将指导你在 Ubuntu 18.04 服务器上设置 Jupyter Notebook,并教你如何连接和使用 Notebook。Jupyter Notebooks (或简称 Notebooks)是由 Jupyter Notebook 应用程序生成的文档,其中包含计算机代码和丰富的文本元素(段落、方程式、图表、链接等),有助于展示和分享可重现的研究。在本指南的最后一步,你将在远程服务器上运行一个运行 Python 3 代码的 Jupyter Notebook。

先决条件

为了完成本指南,你需要一个配置了防火墙和具有 sudo 权限的非 root 用户的 Ubuntu 18.04 服务器实例。你可以通过运行我们的初始服务器设置教程来进行设置。

步骤 1 --- 设置 Python

首先,安装 Ubuntu 仓库中的 Python 编程环境的依赖项。Ubuntu 18.04 预装了 Python 3.6.9。稍后你将使用 Python 包管理器 pip 来安装额外的组件。

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

command 复制代码
sudo apt update

接下来,安装 pip 和 Python 头文件,这些文件将被 Jupyter 的一些依赖项使用:

command 复制代码
sudo apt install python3-pip python3-dev

现在,你可以继续设置 Python 虚拟环境。

步骤 2 --- 为 Jupyter 创建 Python 虚拟环境

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

你将需要访问 virtualenv 命令,它可以通过 pip 安装。

首先,通过输入以下命令来升级 pip:

command 复制代码
sudo -H pip3 install --upgrade pip

然后使用以下命令安装 virtualenv

command 复制代码
sudo -H pip3 install virtualenv

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

安装了 virtualenv 后,你可以开始创建你的环境。创建并进入一个可以保存项目文件的目录。以下示例目录名为 my_project_dir。使用一个对你来说有意义的名称和你正在处理的内容。

通过输入以下命令来创建你的目录:

command 复制代码
mkdir ~/my_project_dir

使用以下命令进入 my_project_dir

command 复制代码
cd ~/my_project_dir

在项目目录中,创建一个 Python 虚拟环境。本教程将把这个环境称为 my_project_env,但你可以使用与你的项目相关的名称。

command 复制代码
virtualenv my_project_env

这将在你的 my_project_dir 目录中创建一个名为 my_project_env 的目录。在其中,它将安装一个本地版本的 Python 和一个本地版本的 pip。你可以使用它来安装和配置 Jupyter 的隔离 Python 环境。

在安装 Jupyter 之前,激活虚拟环境。你可以通过输入以下命令来执行:

command 复制代码
source my_project_env/bin/activate

你的提示符应该会改变,指示你现在正在一个 Python 虚拟环境中操作,类似于这样:

custom_prefix((my_project_env)\ssammy@host:~/my_project_dir$) 复制代码

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

步骤 3 --- 安装 Jupyter

在你的虚拟环境激活状态下,使用本地的 pip 安装 Jupyter。

custom_prefix((my_project_env)\ssammy@host:~/my_project_dir$) 复制代码
pip install jupyter

到目前为止,你已经成功安装了运行 Jupyter 所需的所有软件。现在你可以启动 Notebook 服务器。

步骤 4 --- 运行 Jupyter Notebook

现在你已经准备好运行 Jupyter Notebook 所需的一切。要运行它,请执行以下命令:

custom_prefix((my_project_env)\ssammy@host:~/my_project_dir$) 复制代码
jupyter notebook

Jupyter Notebook 的活动日志将被打印到终端。当你运行 Jupyter Notebook 时,它会运行在一个特定的端口号上。通常,你第一次运行的 Notebook 将使用端口 8888。要检查 Jupyter Notebook 正在运行的具体端口号,请参考用于启动它的命令的输出:

[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 确认。将显示以下输出:

[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 隧道来访问 Notebook。

第五步 --- 使用 SSH 隧道连接服务器

Jupyter Notebook 在服务器上运行在特定的端口上(例如 :8888:8889 等)。SSH 隧道使您能够安全地连接到服务器的端口。

接下来的两个小节将介绍如何在 Mac、Linux 和 Windows 操作系统上创建 SSH 隧道。请参考适用于您本地计算机的小节。

在 Mac 或 Linux 上使用 SSH 隧道

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

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

command 复制代码
[本地环境]
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,命令将是:

command 复制代码
[本地环境]
ssh -L 8888:localhost:8888 sammy@203.0.113.0

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

custom_prefix((my_project_env)sammy@your_server:~/my_project_dir$) 复制代码
jupyter notebook

您将收到一个带有 URL 的输出。从本地计算机的 Web 浏览器中,使用以 http://localhost:8888 开头的 URL 打开 Jupyter Notebook Web 界面。确保包括令牌号码,或在 http://localhost:8888 提示时输入令牌号码字符串:

...
[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 隧道的主机名

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

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

!转发端口列表

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

无论您是在 Mac/Linux 操作系统还是 Windows 上连接,您现在应该通过 SSH 隧道连接到您的服务器。您现在可以在 Web 浏览器中使用 Jupyter Notebook 了。

第六步 --- 使用 Jupyter Notebook

如果您当前没有运行 Jupyter Notebook,请使用 jupyter notebook 命令启动它:

custom_prefix((my_project_env)sammy@your_server:~/my_project_dir$) 复制代码
jupyter notebook

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

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

!创建一个新的 Python 3 notebook

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

# 第一个方程式

现在让我们实现以下方程式:
$$ y = x^2$$

其中 $x = 2$

要将 markdown 转换为富文本,请按 CTRL + ENTER,结果应该如下所示:

!markdown 的结果

您可以使用 markdown 单元格来记录代码并记录您的代码。要实现该方程式并打印结果,请单击顶部单元格,然后按 ALT + ENTER 在其下方添加一个单元格。在新单元格中输入以下代码。

python 复制代码
x = 2
y = x**2
print(y)

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

!第一个方程式的结果

现在,您可以导入模块并像在任何其他 Python 开发环境中一样使用 Notebook。

结论

现在,您应该能够使用 Jupyter Notebook 在 Markdown 中编写可重现的 Python 代码和笔记。要从界面内部快速了解 Jupyter Notebook,请选择顶部导航菜单中的 帮助 > 用户界面导览

从这里开始,您可以通过阅读《使用 pandas 和 Python 3 在 Jupyter Notebook 中进行数据分析和可视化》来开始数据分析和可视化项目。

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

相关推荐
城南皮卡丘12 分钟前
(纯小白教程)Mac OS中安装配置Anaconda及常用conda命令回顾
开发语言·python·conda
BIGSHU092324 分钟前
java流式处理zip+多线程
java·windows·python
Q_27437851091 小时前
django基于Hadoop的天气预报数据爬取与可视化分析
hadoop·python·django
KeyPan1 小时前
【Ubuntu与Linux操作系统:三、用户与组管理】
linux·运维·服务器·算法·ubuntu
KeyPan1 小时前
【Ubuntu与Linux操作系统:八、Ubuntu桌面应用】
linux·运维·服务器·pytorch·ubuntu·机器学习
研究编程1 小时前
在网站上查找隐藏的API - 以flightaware.com为例(+使用该数据创建Plotly动画图表)
python·plotly
The One Neo2 小时前
macos python环境安装
开发语言·python·macos
墨绿色的摆渡人2 小时前
pytorch小记(四):pytorch中的重排操作:x.permute()
人工智能·pytorch·python
2401_891409262 小时前
Level2逐笔成交逐笔委托毫秒记录:今日分享优质股票数据20250102
大数据·数据库·python·金融·数据库开发
别断我一连胜3 小时前
系统看门狗配置--以ubuntu为例
linux·运维·ubuntu