前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 16.04上设置Jupyter Notebook以运行IPython

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

原创
作者头像
吴凌云
修改2018-10-22 11:26:19
3.9K0
修改2018-10-22 11:26:19
举报

介绍

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。

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

代码语言:javascript
复制
sudo apt-get update

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

代码语言:javascript
复制
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:

代码语言:javascript
复制
python --version

这将输出:

代码语言:javascript
复制
Python 2.7.11+

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

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

代码语言:javascript
复制
pip --version

您应该类似于以下内容:

代码语言:javascript
复制
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

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

第二步 - 安装Ipython和Jupyter Notebook

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

首先,安装Ipython:

代码语言:javascript
复制
sudo apt-get -y install ipython ipython-notebook

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

代码语言:javascript
复制
sudo -H pip install jupyter

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

代码语言:javascript
复制
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升级到最新版本:

代码语言:javascript
复制
sudo -H pip install --upgrade pip

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

代码语言:javascript
复制
sudo -H pip install jupyter

第三步 - 运行Jupyter Notebook

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

代码语言:javascript
复制
jupyter notebook

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

代码语言:javascript
复制
Jupyter Notebook requires JavaScript.
Please enable it to proceed.
...

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

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

代码语言:javascript
复制
[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以确认。将显示以下内容:

代码语言:javascript
复制
[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通道:

代码语言:javascript
复制
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,命令将是:

代码语言:javascript
复制
ssh -L 8000:localhost:8888 sammy@111.111.111.111

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

代码语言:javascript
复制
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后,在单元格中输入以下内容:

代码语言:javascript
复制
# Simple Equation
​
Let us now implement the following equation:
$$ y = x^2$$
​
where $x = 2$

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

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

代码语言:javascript
复制
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》

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第一步 - 安装Python 2.7和Pip
  • 第二步 - 安装Ipython和Jupyter Notebook
  • 第三步 - 运行Jupyter Notebook
  • 第四步 - 使用SSH隧道连接到服务器
    • 使用Mac或Linux进行SSH通道连接
      • 使用Windows和Putty进行SSH隧道连接
      • 第五步 - 使用Jupyter Notebook
      • 结论
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档