专栏首页云计算教程系列如何在Ubuntu 16.04上设置Jupyter Notebook以运行IPython
原创

如何在Ubuntu 16.04上设置Jupyter Notebook以运行IPython

介绍

IPython是Python的交互式命令行界面。Jupyter Notebook提供了多种语言的交互式Web界面,包括IPython。

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

在本教程的最后,您将能够使用在远程服务器上运行的Ipython和Jupyter Notebook来运行Python 2.7代码。出于本教程的目的,使用Python 2(2.7.x),因为许多数据科学,科学计算和高性能计算库支持2.7而不是3.0+。

准备

要学习本教程,您需要具备以下条件:

本教程中的所有命令都应以非root用户身份运行。如果命令需要root访问权限,则前面会有sudo使用Ubuntu 16.04的初始服务器设置说明了如何添加用户并为他们提供sudo访问权限。

第一步 - 安装Python 2.7和Pip

在本节中,我们将安装Python 2.7和Pip。

首先,更新系统的包索引。这将确保旧的或过时的包不会干扰安装。

sudo apt-get update

接下来,安装Python 2.7,Python Pip和Python开发:

sudo apt-get -y install python2.7 python-pip python-dev

安装python2.7将更新到最新版本的Python 2.7,python-pip将安装Pip,它允许我们管理我们想要使用的Python包。Jupyter的某些依赖项可能需要编译,在这种情况下,您需要能够编译Python C扩展,因此我们也要安装python-dev

要验证您是否安装了python:

python --version

这将输出:

Python 2.7.11+

根据最新版本的Python 2.7,输出可能会有所不同。

您还可以使用以下命令检查是否安装了pip:

pip --version

您应该类似于以下内容:

pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

同样,根据您的pip版本,输出可能会略有不同。

第二步 - 安装Ipython和Jupyter Notebook

在本节中,我们将安装Ipython和Jupyter Notebook。

首先,安装Ipython:

sudo apt-get -y install ipython ipython-notebook

现在我们可以继续安装Jupyter Notebook:

sudo -H pip install jupyter

根据Ubuntu apt-get存储库中pip的版本,尝试安装Jupyter时可能会出现以下错误:

You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

如果是这样,您可以使用pip将pip升级到最新版本:

sudo -H pip install --upgrade pip

升级pip,然后再次尝试安装Jupyter:

sudo -H pip install jupyter

第三步 - 运行Jupyter Notebook

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

jupyter notebook

如果您在安装了JavaScript的系统上运行Jupyter,它仍然会运行,但它可能会给您一个错误,指出Jupyter Notebook需要JavaScript:

Jupyter Notebook requires JavaScript.
Please enable it to proceed.
...

要忽略该错误,您可以按Q,然后按Y确认。

Jupyter Notebook的活动记录将打印到终端。当您运行Jupyter Notebook时,它将在特定的端口号上运行。您运行的第一个笔记本通常在端口上运行8888。要检查Jupyter Notebook正在运行的特定端口号,请参阅用于启动它的命令的输出:

[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).

如果您在本地Linux计算机(而不是CVM)上运行Jupyter Notebook,您只需导航到连接到Jupyter Notebook。如果您在CVM上运行Jupyter Notebook,则需要使用SSH隧道连接到localhost:8888服务器,如下一节所述。

此时,您可以保持SSH连接打开并保持Jupyter Notebook运行,或者可以退出应用程序并在设置SSH隧道后重新运行它。让我们保持简单并停止Jupyter Notebook流程。一旦我们进行了SSH隧道工作,我们将再次运行它。要停止Jupyter Notebook进程,请按CTRL+C,键入Y,然后单击ENTER以确认。将显示以下内容:

[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels

第四步 - 使用SSH隧道连接到服务器

在本节中,我们将学习如何使用SSH通道连接到Jupyter Notebook Web界面。由于Jupyter Notebook在CVM上的特定端口上运行(例如:8888:8889等等),因此SSH隧道可以安全地连接到CVM的端口。

接下来的两个小节描述了如何从1)Mac或Linux及2)Windows创建SSH通道。

使用Mac或Linux进行SSH通道连接

如果您使用的是Mac或Linux,本小节将概述命令ssh所需的其他参数。

可以通过运行以下SSH命令来完成SSH通道:

ssh -L 8000:localhost:8888 your_server_username@your_server_ip

ssh命令打开SSH连接,但-L指定将本地(客户端)主机上的给定端口转发到远程端的给定主机和端口(CVM)。这意味着在CVM上的第二个端口号(即8888)上运行的任何内容,都将显示在本地计算机上的第一个端口号(即8000)上。您应该更改8888为运行Jupyter Notebook的端口。(可选)将8000端口更改为您选择的端口(例如,如果其他进程使用该8000端口)。使用端口大于或等于8000(即80018002等),以避免使用一个端口已经在另一个进程中使用。server_username是您创建的CVM上的用户名(这里是sammy)your_server_ip是CVM的IP地址。例如,对于用户名sammy和服务器地址111.111.111.111,命令将是:

ssh -L 8000:localhost:8888 sammy@111.111.111.111

如果在运行ssh -L命令后没有显示错误,则可以运行Jupyter Notebook:

jupyter notebook

现在,从本地计算机上的Web浏览器打开Jupyter Notebook Web界面http://localhost:8000(或您选择的任何端口号)。

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

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

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

接下来,单击左窗格底部的SSH以展开菜单,然后单击 “Tunnels”。输入用于访问本地计算机上的Jupyter的本地端口号。选择 8000或更大(即80018002等),以避免由其它服务使用了端口,当Jupyter Notebook上运行:8888端口时设置localhost:8888为目标。现在单击 “Add”按钮,端口应显示在Forwarded ports列表中:

最后,单击“ Open”按钮以通过SSH连接到服务器并隧道连接所需的端口。导航到Web浏览器中的http://localhost:8000(或您选择的任何端口)以连接到服务器上运行的Jupyter Notebook。

第五步 - 使用Jupyter Notebook

本节介绍使用Jupyter Notebook的基础知识。此时您应该运行Jupyter Notebook,并且应该使用Web浏览器连接到它。Jupyter Notebook功能强大。本节将概述开始使用笔记本的基本功能。Jupyter Notebook将自动显示运行目录中的所有文件和文件夹。

要创建新的笔记本文件,请从右上角的下拉菜单中选择New > Python 2

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

# Simple Equation
​
Let us now implement the following equation:
$$ y = x^2$$
​
where $x = 2$

要将降价转换为rich文本,请按CTRL+ENTER,以下结果应为:

您可以使用markdown单元格做笔记并记录您的代码。让我们实现这个简单的等式并打印结果。选择“ 插入”>“ 在下面插入单元格”以插入并单元格并输入以下代码:

x = 2
y = x*x
print y

要运行代码,请按CTRL+ENTER。以下应该是结果:

您现在可以像使用任何其他Python开发环境一样包含库和使用notebook!

结论

恭喜!您现在应该可以使用在CVM上运行的Jupyter notebook,使用markdown编写可重现的Python代码和注释。要快速浏览Jupyter notebook,请从顶部导航菜单中选择“ 帮助” >“ 用户界面”进行阅读。

想要了解更多关于Ubuntu的开源信息教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Set Up a Jupyter Notebook to Run IPython on Ubuntu 16.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Debian 8进行初始服务器设置

    当您第一次创建新的Debian 8服务器时,您应该尽早采取一些配置步骤作为基本设置的一部分。这将提高服务器的安全性和可用性,并为后续操作奠定坚实的基础。

    吴凌云
  • 如何在Ubuntu 18.04上安装Jenkins

    Jenkins是一个开源自动化服务器,可以自动执行持续集成和交付软件所涉及的重复技术任务。Jenkins是基于Java的,可以从Ubuntu软件包安装,也可以通...

    吴凌云
  • 三种方法在CVM安装Node.js

    Node.js是一个用于通用编程的JavaScript平台,允许用户快速构建网络应用程序。通过在前端和后端利用JavaScript,Node.js使开发更加一致...

    吴凌云
  • 数据分析-Jupyter Notebook介绍、安装、使用

    今天我们将学习如何安装、设置和使用Jupyter Notebook。Jupyter Notebook在过去几年中变得非常流行,它允许您创建和共享包含实时代码,方...

    亚乐记
  • 如何让Jupyter Notebook支持多种编程语言?

    不满意Jupyter Notebook只有Python 2环境,还打算让它支持Python 3与R?没问题,本文一步步帮助你实现这个愿望。

    王树义
  • SpringDataJPA 系列之 JPA 简介

      对象-关系映射(Object/Relation Mapping,简称 ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用...

    Demo_Null
  • 这件神器,每个 Python 学习者都值得一试

    Jupyter Notebook 是一款 Web 应用,它能让用户将上面说的各种窗口里的东西,全部组合到一个可读性好,易于共享,且对新手友好的文档中。这个文档里...

    华章科技
  • 这件神器,每个 Python 学习者都值得一试

    不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输...

    猫咪编程
  • JPA、Hibernate、Spring data jpa之间的关系,终于明白了

    全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。

    hbbliyong
  • JPA、Hibernate、Spring data jpa之间的关系,终于明白了

    全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。

    java思维导图

扫码关注云+社区

领取腾讯云代金券