作者选择了 Apache 软件基金会作为 Write for Donations计划的一部分获得100美元的捐款。
介绍
Jupyter Notebook是一个开源的互动式Web应用程序,允许您在40多个编程语言中编写和运行计算机代码,包括 Python, R, Julia,和 Scala。
Jupyter 笔记本提供了创建笔记本文件的能力,简称为笔记本
。从 Jupyter 笔记本创建的笔记本是可共享的,可重复的研究文件,其中包括丰富的文本元素,方程式,代码及其输出(图形,表格,交互式插图)。
本文将向您介绍如何在Ubuntu 20.04 Web 服务器上安装和配置Jupyter Notebook应用程序,以及如何从本地计算机连接到它。
前提条件
要完成本教程,您将需要:
- 一个 Ubuntu 20.04 服务器实例. 这个服务器必须有一个非 root 用户,具有 sudo 权限和已配置的防火墙。 通过遵循我们的 初始服务器设置指南来设置此设置。
- Python 3, pip 和 Python
venv
模块安装在服务器上。 通过遵循我们关于 如何在 Ubuntu 20.04 上安装 Python 3 和设置本地编程环境教程的步骤 1 和 2。 - 在本地计算机上运行的现代Web浏览器,您将使用它来访问Juptery 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笔记本
后,输入输出中显示的代币:
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在笔记本仪表板的右上角:
在本新笔记本中,通过点击 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
,以下应是结果:
您可以使用标记单元格创建笔记并记录您的代码。
现在,让我们实现一个方程式并打印结果. 点击 Insert > Insert Cell Below 以插入一个单元格. 在新单元格中,输入以下代码:
1x = 2
2y = x*x
3print(y)
要运行代码,请按CTRL + ENTER
,下列结果将是:
这些是你可以用Jupyter笔记本做的事情的一些相对简单的例子,但它是一个非常强大的应用程序,具有许多潜在的用例。从这里开始,你可以添加一些Python库,并使用笔记本,就像你在任何其他Python开发环境中一样。
结论
您现在应该能够使用在远程服务器上运行的Jupyter笔记本编写可复制的Python代码和文本. 要快速浏览Jupyter笔记本,请点击上面的导航栏中的 Help,然后选择 User Interface Tour,如下所示:
如果您感兴趣,我们鼓励您通过通过 Project Jupyter 文档来了解更多关于 Jupyter 笔记本的信息。