如何在Ubuntu 18.04上使用Python 3设置Jupyter Notebook

介绍

作为一个开源Web应用程序, Jupyter Notebook允许您创建和共享交互式代码,可视化等。 该工具可与多种编程语言一起使用,包括Python,Julia,R,Haskell和Ruby。 它通常用于处理数据,统计建模和机器学习。

本教程将指导您设置Jupyter Notebook以从Ubuntu 18.04服务器运行,并教您如何连接和使用笔记本。 Jupyter笔记本(或简称笔记本)是由Jupyter Notebook应用程序生成的文档,其中包含计算机代码和富文本元素(段落,方程式,图形,链接等),有助于呈现和共享可重复的研究。

在本指南的最后,您将能够使用在远程服务器上运行的Jupyter Notebook运行Python 3代码。

先决条件

为了完成本指南,您应该拥有一个带有基本防火墙的新Ubuntu 18.04服务器实例和配置了sudo权限的非root用户。 您可以通过运行我们的初始服务器设置教程来了解如何设置它。

第1步 - 设置Python

要开始这个过程,我们将从Ubuntu存储库安装我们的Python编程环境所需的依赖项。 Ubuntu 18.04预装了Python 3.6。 稍后我们将使用Python包管理器pip来安装其他组件。

我们首先需要更新本地apt包索引,然后下载并安装包:

sudo apt update

接下来,安装pip和Python头文件,这些文件由Jupyter的一些依赖项使用:

sudo apt install python3-pip python3-dev

我们现在可以继续设置我们将安装Jupyter的Python虚拟环境。

第2步 - 为Jupyter创建Python虚拟环境

现在我们已经拥有Python 3,它的头文件和pip准备就绪,我们可以创建一个Python虚拟环境来管理我们的项目。 我们将把Jupyter安装到这个虚拟环境中。

为此,我们首先需要访问virtualenv命令,我们可以使用pip安装它。

通过键入以下命令升级pip并安装包:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

-H标志确保安全策略将home环境变量设置为目标用户的主目录。

安装virtualenv ,我们就可以开始形成我们的环境。 创建并移动到我们可以保存项目文件的目录中。 我们称之为my_project_dir ,但您应该使用对您有意义的名称以及您正在处理的名称。

mkdir ~/my_project_dir
cd ~/my_project_dir

在项目目录中,我们将创建一个Python虚拟环境。 出于本教程的目的,我们将其称为my_project_env但您应将其称为与项目相关的内容。

virtualenv my_project_env

这将在my_project_dir目录中创建一个名为my_project_dir目录。 在里面,它将安装本地版本的Python和本地版本的pip。 我们可以使用它为Jupyter安装和配置一个独立的Python环境。

在我们安装Jupyter之前,我们需要激活虚拟环境。 您可以通过键入以下内容来执

source my_project_env/bin/activate

您的提示应更改为表明您现在在Python虚拟环境中运行。 它看起来像这样: ( my_project_env ) user @ host :~/ my_project_dir $

您现在已准备好将Jupyter安装到此虚拟环境中。

第3步 - 安装Jupyter

在虚拟环境处于活动状态时,使用pip的本地实例安装Jupyter。

注意:当虚拟环境被激活时(当你的提示在其前面有(my_project_env)时),使用pip而不是pip3 ,即使你使用的是Python 3.虚拟环境的工具副本总是命名为pip ,不管Python是什么版。

pip install jupyter

此时,您已成功安装了运行Jupyter所需的所有软件。 我们现在可以启动Notebook服务器了。

第4步 - 运行Jupyter Notebook

您现在拥有运行Jupyter Notebook所需的一切! 要运行它,请执行以下命令:

jupyter notebook

Jupyter笔记本的活动记录将打印到终端。 当您运行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/my_project_dir
[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

如果您在本地计算机(而非服务器)上运行Jupyter Notebook,则可以导航到显示的URL以连接到Jupyter Notebook。 如果您在服务器上运行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提示时输入令牌编号字符串。

使用Windows和Putty进行SSH隧道连接

如果您使用的是Windows,则可以使用Putty创建SSH隧道。

首先,输入服务器URL或IP地址作为主机名,如下所示:

设置SSH隧道的主机名

接下来,单击左窗格底部的SSH以展开菜单,然后单击“ 隧道” 输入要用于在本地计算机上访问Jupyter的本地端口号。 选择8000或更高版本以避免其他服务使用的端口,并将目标设置为localhost: 8888其中:8888是Jupyter Notebook正在运行的端口号。

现在单击“ 添加”按钮,端口应显示在“ 转发端口”列表中:

转发端口列表

最后,单击“ 打开”按钮以通过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 3笔记本

这将打开一个笔记本。 我们现在可以在单元格中运行Python代码或将单元格更改为markdown。 例如,通过单击顶部导航栏中的“ 单元格” >“ 单元格类型” >“ Markdown” ,将第一个单元格更改为接受Markdown。 我们现在可以使用Markdown编写注释,甚至包括用LaTeX编写的方程式,将它们放在$$符号之间。 例如,在将其更改为markdown后,在单元格中键入以下内容:

# First 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开发环境一样导入模块并使用Notebook!

结论

恭喜! 您现在应该能够使用Jupyter Notebook在Markdown中编写可重现的Python代码和注释。 要从界面中快速浏览Jupyter Notebook,请从顶部导航菜单中选择帮助 > 用户界面导览以了解更多信息。

从这里开始,您可以通过读取来开始数据分析和可视化项目。

如果您对挖掘更多内容感兴趣,可以阅读我们关于时间序列可视化和预测的系列

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏