不使用Debian 9?选择其他版本:
- Ubuntu 16.04
介绍
Jupyter Notebook为交互式计算提供了一个命令shell作为Web应用程序。该工具可以与多种语言一起使用,包括Python,Julia,R,Haskell和Ruby。它通常用于处理数据,统计建模和机器学习。
本教程将指导您设置Jupyter Notebook以从Debian 9服务器运行,并教您如何连接和使用笔记本。Jupyter笔记本(或简称笔记本)是由Jupyter Notebook应用程序生成的文档,其中包含计算机代码和富文本元素(段落,方程式,图形,链接等),有助于呈现和共享可重复的研究。
在本指南的最后,您将能够使用在远程服务器上运行的Jupyter Notebook运行Python 3代码。
先决条件
为了完成本指南,您应该拥有一个带有基本防火墙的新的Debian 9服务器实例和一个配置了sudo权限的非root用户。您可以通过Debian9指南运行初始服务器设置来了解如何进行此设置。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
第1步 - 安装Pip和Python标头
要开始这个过程,我们将从Debian存储库下载并安装我们需要的所有项目。稍后我们将使用Python包管理器pip
来安装其他组件。
我们首先需要更新本地apt
包索引,然后下载并安装包:
sudo apt update
接下来,安装pip
和一些Jupyter依赖项使用的Python头文件:
sudo apt install python3-pip python3-dev
Debian 9(“Stretch”)预装了Python 3.5。
我们现在可以继续设置我们将安装Jupyter的Python虚拟环境。
第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虚拟环境:
代码语言:javascript复制virtualenv myprojectenv
这将在您的myprojectdir
目录中创建一个名叫myprojectenv
的目录。在里面,它将安装本地版本的Python和本地版本的pip
。我们可以使用它为Jupyter安装和配置一个独立的Python环境。
在我们安装Jupyter之前,我们需要激活虚拟环境。您可以通过键入以下内容来执
代码语言:javascript复制source myprojectenv/bin/activate
您的提示应更改为表明您现在在Python虚拟环境中运行。它看起来像这样:(myprojectenv)user@host:~/myprojectdir$
。
您现在已准备好将Jupyter安装到此虚拟环境中。
第3步 - 安装Jupyter
在虚拟环境处于活动状态时,使用本地实例pip
安装Jupyter :
注意:当虚拟环境被激活时(当您的提示位于其(myprojectenv)
前面时),即使您使用的是Python,也请使用pip
而不是pip3
Python 3. pip
无论Python版本是什么,虚拟环境的工具副本始终都会被命名。
pip install jupyter
此时,您已成功安装了运行Jupyter所需的所有软件。我们现在可以启动笔记本服务器了。
第4步 - 运行Jupyter Notebook
您现在拥有运行Jupyter Notebook所需的一切!要运行它,请执行以下命令:
代码语言:javascript复制jupyter notebook
Jupyter笔记本的活动记录将打印到终端。当您运行Jupyter Notebook时,它将在特定的端口号上运行。您运行的第一个笔记本通常会使用端口8888
。要检查Jupyter Notebook正在运行的特定端口号,请参阅用于启动它的命令的输出:
[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计算机上运行Jupyter Notebook(而不是在腾讯CVM上),您只需导航到显示的URL即可连接到Jupyter Notebook。如果您在腾讯CVM上运行Jupyter Notebook,则需要使用SSH隧道连接到服务器,如下一节所述。
此时,您可以保持SSH连接打开并保持Jupyter Notebook运行,或者可以退出应用程序并在设置SSH隧道后重新运行它。让我们保持简单并停止Jupyter Notebook流程。一旦我们进行了SSH隧道工作,我们将再次运行它。要停止Jupyter Notebook进程,请按CTRL C
,键入Y
,然后单击ENTER
以确认。将显示以下内容:
[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels
我们现在将设置一个SSH隧道,以便我们可以访问笔记本。
步骤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命令来完成:
代码语言:javascript复制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
时输入令牌编号字符串。
使用Windows和Putty进行SSH隧道连接
如果您使用的是Windows,则可以使用Putty创建SSH隧道。
首先,输入服务器URL或IP地址作为主机名,如下所示:
接下来,单击左窗格底部的SSH以展开菜单,然后单击“ 隧道”。输入用于访问本地计算机上的Jupyter的本地端口号。选择 8000
或更大,以避免其他服务所使用的端口,并设定目的地为 localhost:8888
,其中 :8888
是Jupyter笔记本电脑上运行的端口号。
现在单击“ 添加”按钮,端口应显示在“ 转发端口”列表中:
最后,单击“ 打开”按钮以通过SSH连接到服务器并隧道连接所需的端口。导航到Web浏览器中的http://localhost:8000
(或您选择的任何端口)以连接到服务器上运行的Jupyter Notebook。确保包含令牌编号,或在提示http://localhost:8000
时输入令牌编号字符串。
第6步 - 使用Jupyter Notebook
本节介绍使用Jupyter Notebook的基础知识。如果您当前没有运行Jupyter Notebook,请使用该jupyter notebook
命令启动它。
您现在应该使用Web浏览器连接到它。Jupyter Notebook功能强大,功能强大。本节将概述一些使您开始使用笔记本的基本功能。Jupyter Notebook将显示其运行目录中的所有文件和文件夹,因此当您处理项目时,请确保从项目目录启动它。
要创建新的笔记本文件,请从右上角的下拉菜单中选择New > Python 3:
这将打开一个笔记本。我们现在可以在单元格中运行Python代码或将单元格更改为markdown。例如,通过单击顶部导航栏中的“ 单元格” >“ 单元格类型” >“ Markdown”,将第一个单元格更改为接受Markdown 。我们现在可以使用Markdown编写注释,甚至可以通过将它们放在$$
符号之间来包含用LaTeX编写的方程式。例如,在将其更改为markdown后,在单元格中键入以下内容:
# Simple Equation
Let us now implement the following equation:
$$ y = x^2$$
where $x = 2$
要将降价转换为富文本,请按CTRL ENTER
,以下结果应为:
您可以使用markdown单元格做笔记并记录您的代码。让我们实现这个简单的等式并打印结果。单击顶部单元格,然后按ALT ENTER
以在其下方添加单元格。在新单元格中输入以下代码。
x = 2
y = x**2
print(y)
要运行代码,请按CTRL ENTER
。您将收到以下结果:
您现在可以像导入任何其他Python开发环境一样导入模块并使用笔记本!
结论
恭喜!您现在应该能够使用Jupyter Notebook在Markdown中编写可重现的Python代码和注释。要从界面中快速浏览Jupyter Notebook,请从顶部导航菜单中选择帮助 > 用户界面导览以了解更多信息。
更多Debian教程请前往腾讯云 社区学习更多知识。
参考文献:《How To Set Up a Jupyter Notebook with Python 3 on Debian 9》