介绍
Jupyter Notebook提供了一个用于作为Web应用程序的交互式计算的命令shell。该工具可以与多种语言一起使用,包括Python,Julia,R,Haskell和Ruby。它通常用于处理数据,统计建模和机器学习。 本教程将引导您设置Jupyter Notebook以在本地或从Ubuntu 16.04服务器运行,以及教您如何连接和使用笔记本。 Jupyter笔记本(或简称笔记本)是由Jupyter Notebook应用程序生成的文档,包含计算机代码和丰富的文本元素(段落,方程,数字,链接等),有助于呈现和共享可再现的研究。 在本指南结束时,您将能够使用运行在本地机器或远程服务器上的Jupyter Notebook运行Python 3代码。
先决条件
要遵循本教程,您将需要一个Python 3编程环境
本教程中的所有命令都应以非root用户身份运行。 如果命令需要root访问权限,则它之前将是
sudo
。
使用Ubuntu 16.04的初始服务器设置说明如何添加用户并授予其sudo访问权限。
第1步 - 安装Jupyter Notebook
在本节中,我们将使用
pip
安装Jupyter Notebook。 激活您要安装Jupyter Notebook的Python 3编程环境。在我们的示例中,我们将把它安装到
my_env
,所以我们将确保我们在该环境的目录中,并激活它:
cd ~/environments
. my_env/bin/activate
接下来,我们可以确保
pip
升级到最新版本:
pip install --upgrade pip
现在我们可以使用以下命令安装Jupyter Notebook:
pip install jupyter
此时Jupyter Notebook被安装到当前的编程环境中。 下一个可选步骤是使用SSH隧道连接Web界面的服务器安装的步骤。
第2步(可选) - 使用SSH隧道连接到服务器安装
如果您在服务器上安装Jupyter Notebook,在本节中,我们将了解如何使用SSH隧道连接到Jupyter Notebook Web界面。由于Jupyter Notebook将在服务器上的特定端口(例如
:8888
,
:8889
等)上运行,因此通过SSH隧道可以安全地连接到服务器的端口。 接下来的两个小节描述如何创建SSH隧道从1)Mac或Linux和2)Windows。请参阅本地计算机的子部分。
SSH使用Mac或Linux进行隧道传输
如果您使用Mac或Linux,创建SSH隧道的步骤类似于
如何使用Linux或Mac的DigitalOcean Droplet如何使用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隧道,如
在DigitalOcean Droplet(Windows用户)上如何使用SSH键和PuTTY中所述 。 首先,输入服务器URL或IP地址作为主机名,如图所示:
接下来,单击左窗格底部的
SSH以展开菜单,然后单击
隧道 。 输入用于在本地计算机上访问Jupyter的本地端口号。 选择
8000
或更大,以避免其他服务使用的端口,并将目标设置为
localhost: 8888
其中
:8888
是运行Jupyter Notebook的端口号。 现在单击
添加按钮,端口应该显示在
转发的端口列表中:
最后,单击
打开按钮通过SSH连接到服务器,并隧道化所需的端口。 在Web浏览器中导航到
http://localhost: 8000
(或您选择的任何端口)以连接到在服务器上运行的Jupyter Notebook。 确保包含令牌编号,或者在
http://localhost:8000
提示时输入令牌编号字符串。
第3步 - 运行Jupyter Notebook
安装Jupyter Notebook后,您可以在终端中运行它。为此,请执行以下命令:
jupyter notebook
Jupyter Notebook的活动日志将打印到终端。当您运行Jupyter Notebook时,它会在特定的端口号上运行。您运行的第一个笔记本计算机通常在端口
8888
上运行。要检查Jupyter Notebook正在运行的特定端口号,请参阅用于启动它的命令的输出:
Output[I NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels
[I NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
...
如果您在本地计算机(而不是服务器)上运行Jupyter Notebook,您的默认浏览器应已打开Jupyter Notebook web应用程序。如果没有,或者如果关闭窗口,您可以导航到输出中提供的URL,或导航到
localhost :8888
进行连接。 每当你想停止Jupyter Notebook进程时,按
CTRL+C
,出现提示时键入
Y
,然后
ENTER
确认。 您将收到以下输出:
Output[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels
Jupyter Notebook现在不再运行。
第4步 - 使用Jupyter Notebook
本节讨论使用Jupyter Notebook的基础知识。如果您当前没有运行Jupyter Notebook,请使用
jupyter notebook
命令启动它。 您现在应该使用网络浏览器连接到它。 Jupyter笔记本是非常强大,有很多功能。本节将概述几个基本功能,让您开始使用笔记本。 Jupyter Notebook将显示它运行的目录中的所有文件和文件夹,所以当你在一个项目上工作时,确保从项目目录中启动它。 要创建新的笔记本文件,请从右上角的下拉菜单中选择
新建 >
Python 3 :
这将打开一个笔记本。我们现在可以在单元格中运行Python代码或将单元格更改为markdown。例如,通过从顶部导航栏中单击“
单元格” >“
单元格类型” >“
Markdown” ,将第一个单元格更改为接受Markdown。 我们现在可以使用Markdown写笔记,甚至包括用
LaTeX写的方程,把它们放在
$$
符号之间。例如,在将其更改为markdown后,在单元格中键入以下内容:
# Simple Equation
Let us now implement the following equation:
$$ y = x^2$$
where $x = 2$
要将markdown转换为富文本格式,请按
CTRL+ENTER
,以下应为结果:
您可以使用markdown单元格来记录和记录您的代码。让我们实现那个简单的方程并打印结果。单击顶部单元格,然后按
ALT+ENTER
在其下添加一个单元格。在新单元格中输入以下代码。
x = 2
y = x**2
print(y)
要运行代码,请按
CTRL+ENTER
。您将收到以下结果:
您现在可以导入
模块并使用笔记本电脑,就像使用任何其他Python开发环境一样!
结论
恭喜!你现在应该能够使用Jupyter Notebook在Markdown中编写可重现的Python代码和注释。要从界面中快速浏览Jupyter Notebook,请从顶部导航菜单中选择
帮助 >
用户界面导览 ,以了解详情。