如何在Debian10上使用Python3设置JupyterNotebook
介绍
Jupyter Notebook 为交互式计算提供了一个命令 shell,作为一个 Web 应用程序,您可以共享和与代码通信。 该工具可用于多种语言,包括 Python、Julia、R、Haskell 和 Ruby。 它通常用于处理数据、统计建模和机器学习。
本教程将引导您设置 Jupyter Notebook 以从 Debian 10 服务器运行,并教您如何连接和使用 Notebook。 Jupyter Notebooks(或简称为“Notebooks”)是由 Jupyter Notebook 应用程序生成的文档,其中包含计算机代码和富文本元素(段落、方程式、图形、链接等),有助于呈现和共享可重复的研究。
在本指南结束时,您将能够使用在远程 Debian 10 服务器上运行的 Jupyter Notebook 运行 Python 3 代码。
先决条件
为了完成本指南,您应该拥有一个带有基本防火墙的全新 Debian 10 服务器实例和一个配置了 sudo 权限的非 root 用户。 您可以通过运行我们的 Initial Server Setup with Debian 10 指南来了解如何进行设置。
第 1 步 — 安装 Pip 和 Python 头文件
要开始这个过程,我们将从 Debian 存储库下载并安装我们需要的所有项目。 稍后我们将使用 Python 包管理器 pip
安装其他组件。
我们首先需要更新本地的apt
包索引,然后下载安装包:
sudo apt update
接下来,安装 pip
和 Python 头文件,这些文件被 Jupyter 的一些依赖项使用:
sudo apt install python3-pip python3-dev
Debian 10(“Buster”)预装了 Python 3.7。
我们现在可以继续设置一个 Python 虚拟环境,我们将在其中安装 Jupyter。
第 2 步 — 为 Jupyter 创建 Python 虚拟环境
现在我们已经准备好 Python 3、它的头文件和 pip
,我们可以创建一个 Python 虚拟环境以便于管理。 我们将把 Jupyter 安装到这个虚拟环境中。
为此,我们首先需要访问 virtualenv
命令。 我们可以用 pip
安装它。
升级 pip
并输入以下命令安装软件包:
sudo -H pip3 install --upgrade pip sudo -H pip3 install virtualenv
安装 virtualenv
后,我们就可以开始构建我们的环境了。 创建并移动到一个目录,我们可以在其中保存我们的项目文件:
mkdir ~/myprojectdir cd ~/myprojectdir
在项目目录中,通过键入以下命令创建 Python 虚拟环境:
virtualenv myprojectenv
这将在您的 myprojectdir
目录中创建一个名为 myprojectenv
的目录。 在内部,它将安装 Python 的本地版本和 pip
的本地版本。 我们可以使用它来为 Jupyter 安装和配置一个隔离的 Python 环境。
在我们安装 Jupyter 之前,我们需要激活虚拟环境。 您可以通过键入:
source myprojectenv/bin/activate
您的提示应更改以指示您现在正在 Python 虚拟环境中操作。 它看起来像这样:(myprojectenv)user@host:~/myprojectdir$
。
您现在已准备好将 Jupyter 安装到此虚拟环境中。
第 3 步 — 安装 Jupyter
激活虚拟环境后,使用 pip
的本地实例安装 Jupyter:
注意:当虚拟环境被激活时(当你的提示前面有(myprojectenv)
时),使用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/myprojectdir [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
如果您在本地 Debian 计算机(而不是 Droplet)上运行 Jupyter Notebook,您只需导航到显示的 URL 即可连接到 Jupyter Notebook。 如果您在 Droplet 上运行 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 来开始数据分析和可视化项目。