如何在远程服务器上安装、运行和连接 Jupyter Notebook

作者选择了 Apache 软件基金会作为 Write for Donations计划的一部分获得100美元的捐款。

介绍

Jupyter Notebook是一个开源的互动式Web应用程序,允许您在40多个编程语言中编写和运行计算机代码,包括 Python, R, Julia,和 Scala

Jupyter 笔记本提供了创建笔记本文件的能力,简称为笔记本。从 Jupyter 笔记本创建的笔记本是可共享的,可重复的研究文件,其中包括丰富的文本元素,方程式,代码及其输出(图形,表格,交互式插图)。

本文将向您介绍如何在Ubuntu 20.04 Web 服务器上安装和配置Jupyter Notebook应用程序,以及如何从本地计算机连接到它。

前提条件

要完成本教程,您将需要:

步骤1:安装Jupyter笔记本

由于笔记本被用来编写、运行和查看代码的小片的结果,你首先需要设置编程语言支持。Jupyter笔记本使用语言特定的 kernel,这是一个运行和内观代码的计算机程序。Jupyter笔记本有((https://github.com/jupyter/jupyter/wiki/Jupyter-kernels)许多不同语言的内核),默认是(https://ipython.org/)。

假设你遵循了前提部分链接的教程,你应该有 Python 3, pip 和一个虚拟环境安装

启动虚拟环境:

1source my_env/bin/activate

随后,您的提示将以您的环境的名称为前缀。

现在你已经在你的虚拟环境中,继续安装Jupyter笔记本:

1python3 -m pip install jupyter

如果安装成功,您将看到类似于以下的输出:

1[secondary_label Output]
2. . .
3Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

隨後,Jupyter Notebook已安裝到您的伺服器上,接下來,我們將討論如何執行應用程式。

第2步:运行Jupyter笔记本

Jupyter 笔记本必须从您的 VPS 运行,以便您可以使用 SSH 隧道和您最喜欢的 Web 浏览器从本地机器连接到它。

要运行 Jupyter 笔记本服务器,请输入以下命令:

1jupyter notebook

运行此命令后,您将看到类似于以下的输出:

 1[secondary_label Output]
 2[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret
 3[I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home/sammy/environments
 4[I 19:46:22.365 NotebookApp] 0 active kernels
 5[I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at:
 6[I 19:46:22.366 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675
 7[I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
 8[W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser.
 9[C 19:46:22.367 NotebookApp]
10
11    Copy/paste this URL into your browser when you connect for the first time,
12    to login with a token:
13        http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675&tokenExample_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675

您可能会在输出中注意到有一个没有网页浏览器找到警告,这是可以预期的,因为该应用程序在服务器上运行,您可能还没有安装网页浏览器。

目前,请按CTRL+C,然后按y,然后按ENTER,以确认:

1[secondary_label Output]
2Shutdown this notebook server (y/[n])? y
3[C 20:05:47.654 NotebookApp] Shutdown confirmed
4[I 20:05:47.654 NotebookApp] Shutting down 0 kernels

然后使用exit命令退出服务器:

1exit

但是,为了访问应用程序并开始使用笔记本,您需要使用 SSH 隧道和本地计算机上的 Web 浏览器连接到应用程序。

步骤 3 — 使用 SSH 隧道连接到 Jupyter 笔记本应用程序

如果您在远程服务器上安装了 Jupyter 笔记本,则需要使用 SSH 隧道连接到 Jupyter 笔记本 Web 接口。 Jupyter 笔记本在您的远程服务器上的特定端口上运行其浏览器接口(如 :8888:8889 等),默认情况下不会接触到更广泛的 Web。

请注意,这些指令旨在从本地终端窗口运行,即不是您已连接到服务器的窗口。

SSH隧道

如果你正在使用Windows,你需要安装一个版本的OpenSSH,以便能够从终端ssh。如果你更喜欢在PowerShell工作,你可以遵循 微软的文档将OpenSSH添加到PowerShell。如果你更愿意有一个完整的Linux环境可用,你可以 设置WSL,为Linux的Windows子系统,其中将包含ssh默认。最后,作为一个轻量级的第三种选项,你可以安装Git for Windows(https://gitforwindows.org/),其中提供一个原始的Windowsbash终端环境,其中包括ssh命令。

如果您使用的是 Mac 或 Linux,则已在您的终端中使用ssh命令。

创建 SSH 隧道的步骤类似于 How to Connect to Droplets with SSH指南,除非在ssh命令中添加了额外的参数。

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

1ssh -L 8888:localhost:8888 your_server_username@your_server_ip

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

如果您收到消息称端口「8888」不可用,您可以将其更改为 65535 以下的任意端口号。

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

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

1ssh -L 8888:localhost:8888 sammy@your_server_ip

如果这个命令没有错误,它会登录到您的远程服务器,从那里启用虚拟环境:

1source ~/environments/my_env/bin/activate

然后运行Jupyter笔记本应用程序:

1jupyter notebook

要连接到 Jupyter 笔记本,请使用您最喜欢的 Web 浏览器导航到本地主机上的本地端口: http://localhost:8000. 现在您已连接到 Jupyter 笔记本,继续到步骤 4 学习如何使用它。

第4步:使用Jupyter笔记本

通过 Web 浏览器访问时,Jupyter 笔记本提供一个笔记本仪表板,它作为文件浏览器,并为您提供创建、编辑和探索笔记本的界面。 将这些笔记本视为文件(用.ipynb 文件扩展保存),您将其填充到任何数量的单个单元格中。 每个单元格都有一个交互式文本编辑器,可以用来运行代码或编写渲染文本。 此外,笔记本还允许您编写和运行方程式,包括其他丰富的媒体,如图像或交互式插图,并且可以导出和共享各种格式(.ybip, .pdf, .py)。 为了说明一些这些功能,我们将从笔记本仪表板创建一个

到此时,您应该使用 SSH 隧道连接到服务器,并从您的服务器启动 Jupyter 笔记本应用程序. 在导航到 http://localhost:8000后,您将收到一个登录页面:

Jupyter Notebook login screen

在顶部的密码代币字段中,从您的服务器运行jupyter笔记本后,输入输出中显示的代币:

 1[secondary_label Output]
 2[I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
 3[I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy
 4[I 20:35:17.314 NotebookApp] 0 active kernels
 5[I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at:
 6[I 20:35:17.315 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675
 7[I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
 8[W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser.
 9[C 20:35:17.316 NotebookApp]
10. . .

或者,您可以从终端输出中复制该 URL,并将其粘贴到浏览器的地址栏中。

自动,Jupyter笔记本将显示存储在它运行的目录中的所有文件和文件夹. 创建一个新的笔记本文件,点击 然后 Python 3在笔记本仪表板的右上角:

Create a new Python3 notebook

在本新笔记本中,通过点击 Cell > Cell Type > Markdown在导航栏顶部更改第一个单元格以接受标记语法,除了标记,此单元格类型还允许您在LaTeX中写方程式。

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

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

Turn sample equation into rich text

您可以使用标记单元格创建笔记并记录您的代码。

现在,让我们实现一个方程式并打印结果. 点击 Insert > Insert Cell Below 以插入一个单元格. 在新单元格中,输入以下代码:

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

要运行代码,请按CTRL + ENTER,下列结果将是:

Solve sample equation

这些是你可以用Jupyter笔记本做的事情的一些相对简单的例子,但它是一个非常强大的应用程序,具有许多潜在的用例。从这里开始,你可以添加一些Python库,并使用笔记本,就像你在任何其他Python开发环境中一样。

结论

您现在应该能够使用在远程服务器上运行的Jupyter笔记本编写可复制的Python代码和文本. 要快速浏览Jupyter笔记本,请点击上面的导航栏中的 Help,然后选择 User Interface Tour,如下所示:

Finding Jupyter Notebook help tour

如果您感兴趣,我们鼓励您通过通过 Project Jupyter 文档来了解更多关于 Jupyter 笔记本的信息。

Published At
Categories with 技术
comments powered by Disqus