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

简介

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

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

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

先决条件

要按照本教程操作,您需要以下内容:

  • Ubuntu 16.04 Droplet
  • 具有 sudo 权限的非 root 用户(《使用 Ubuntu 16.04 进行初始服务器设置》解释了如何设置此权限)

本教程中的所有命令都应该以非 root 用户身份运行。如果命令需要 root 访问权限,则会在其前面加上 sudo

步骤 1 — 安装 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 版本,输出可能会略有不同。

步骤 2 — 安装 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

步骤 3 — 运行 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 计算机上运行 Jupyter Notebook(而不是在 Droplet 上),您可以简单地导航到 localhost:8888 来连接到 Jupyter Notebook。如果您在 Droplet 上运行 Jupyter Notebook,则需要使用 SSH 隧道连接到服务器,如下一节所述。

此时,您可以保持 SSH 连接打开并保持 Jupyter Notebook 运行,或者可以退出应用程序,一旦设置了 SSH 隧道,就可以重新运行它。让我们简单点,停止 Jupyter Notebook 进程。要停止 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 在 Droplet 上运行在特定端口上(例如 :8888:8889 等),SSH 隧道使您能够安全地连接到 Droplet 的端口。

接下来的两个小节将介绍如何从 1)Mac 或 Linux 和 2)Windows 创建 SSH 隧道。请参考适用于您本地计算机的小节。

在 Mac 或 Linux 上使用 SSH 隧道

如果您使用的是 Mac 或 Linux,创建 SSH 隧道的步骤类似于使用 Linux 或 Mac 指南中的数字海洋 Droplets 使用 SSH 密钥,只是在 ssh 命令中添加了额外的参数。本小节将概述在 ssh 命令中成功创建隧道所需的额外参数。

可以通过运行以下 SSH 命令来进行 SSH 隧道:

ssh -L 8000:localhost:8888 your_server_username@your_server_ip

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

ssh -L 8000:localhost:8888 sammy@111.111.111.111

如果在运行 ssh -L 命令后没有出现错误,您可以运行 Jupyter Notebook:

jupyter notebook

现在,从本地计算机的 Web 浏览器中,使用 http://localhost:8000(或您选择的端口号)打开 Jupyter Notebook 的 Web 接口。

在 Windows 上使用 SSH 隧道和 Putty

如果您使用的是 Windows,您也可以使用 Putty 轻松创建 SSH 隧道,如数字海洋 Droplets 上的 Windows 用户使用 PuTTY 指南中所述。

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

!设置 SSH 隧道的主机名

接下来,点击左侧窗格底部的 SSH 以展开菜单,然后点击 Tunnels。输入要用于在本地计算机上访问 Jupyter 的本地端口号。选择 8000 或更大的值(例如 80018002 等)以避免被其他服务使用的端口,并将目的地设置为 localhost:8888,其中 :8888 是 Jupyter Notebook 运行的端口号。现在点击 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

!创建一个新的 Python 2 笔记本

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


# 简单方程式现在让我们来实现以下方程式:
$$ y = x^2$$其中 $x = 2$

要将 markdown 转换为富文本,请按 CTRL+ENTER,结果应该如下:

!markdown 结果

您可以使用 markdown 单元格来记录代码并记录您的代码。 让我们实现这个简单的方程式并打印结果。 选择 插入 > 在下方插入单元格 来插入一个单元格,并输入以下代码:

x = 2
y = x*x
print y

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

!简单方程式结果

现在您可以包含库并像在任何其他 Python 开发环境中一样使用笔记本!

结论

恭喜!您现在应该能够使用 Jupyter 笔记本在 Droplet 上运行并使用 markdown 编写可重现的 Python 代码和笔记。要快速了解 Jupyter 笔记本,请从顶部导航菜单中选择 帮助 > 用户界面导览

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【快速上手QT】02-学会查看QT自带的手册QT助手

QT助手 为什么大家都说QT简单,第一点就是确实简单(bushi)。 我个人觉得最关键的点就是人家QT官方就给你准备好了文档,甚至还有专门的IDE——QtCreator,在QTCreator里面还有很多示例代码,只要你会C的语法以…

Top 20 Docker 面试题(附答案)

Docker 是一种流行的开源软件平台,可简化创建、管理、运行和分发应用程序的过程。它使用容器来打包应用程序及其依赖项。Docker 主导了市场。大多数顶级云和 IT 公司都采用 Docker 来简化其应用程序开发工作流程。对具有 Docker 经验的申请人的需求很高。 破解 Doc…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Divider组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Divider组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Divider组件 提供分隔器组件,分隔不同内容块/内容元素。 子组件 …

C#使用重载方法实现不同类型数据的计算

目录 一、涉及到的相关知识 1.重载的方法 2.Convert.ToInt32(String)方法 3.判断字符串是否带有小数点 二、实例 1.示例 2.生成成果 一、涉及到的相关知识 1.重载的方法 重载方法就是方法名称相同,但是每个方法中参数的数据类型、个数或顺序不同的方法。如果…

【开源】JAVA+Vue.js实现高校学院网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…

大语言模型不适合的范围

大语言模型在某些情况下可能不适用,主要体现在以下几个方面: 1、特定领域知识不足 大语言模型可能缺乏某些特定领域的专业知识,导致在特定行业或领域的问题上表现不佳。例如,在医学、法律等专业领域的术语和规范性语言理解方面可能…

收藏:《不要和不懂组织的人讨论管理》

刘润老师的文章:《不要和不懂组织的人讨论管理》,不错,收藏,地址:https://mp.weixin.qq.com/s?__bizMjM5NjM5MjQ4MQ&mid2651667396&idx1&snf98f294c19d1b6d6b608d013b4a39e32&chksmbd10608a8a67e99ce…

Vue-54、Vue技术vuex中四个map使用(mapState、mapGetters、mapActions、mapMutations)

1、mapState方法:用于帮助我们映射state中的数据为计算属性 computed:{//借助mapstate生成计算属性,从state中读取数据(对象写法)...mapState({sum:sum,school:school,subject:subject}),//借助mapstate生成计算属性,…

PyCharm2023.3.2配置conda环境

重点在于Path to conda这一步,需要找到conda.bat这个文件,PyCharm才能识别出现有的conda环境。

Spring Native 解放 JVM

一、Spring Native 是什么 Spring Native可以通过GraalVM将Spring应用程序编译成原生镜像,提供了一种新的方式来部署Spring应用。与Java虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常…

第四节课[XTuner微调]作业

文章目录 前言作业基础作业-XTuner InternLM-Chat 个人小助手认知微调实践 前言 XTuner 做在第三节课LangChain作业之前,因为第三节课没想好找哪个领域,等第三节课作业做了一起部署。 作业 基础作业-XTuner InternLM-Chat 个人小助手认知微调实践 然…

数据采集接口分类:数据采集、数据的采集有哪些?

中国的人工智能会面临着前所未有的发展机遇,她也将会以真正解决人类钢需载入史册,我们也期待着在天津跟在座的各位合作伙伴共同努力,真正的用人工智能建设美好世界。 API接口数据采集 主流电商数据采集 一、 什么是数据采集 确立一个算法模…

什么是Vue样式穿透以及常用的实现方法

在Web前端开发中,样式穿透是一个重要的主题,它可以帮助我们更好地定制化组件样式,提升用户体验。本文将为您介绍Vue中样式穿透的概念,以及几种常用的实现方法,希望对您的前端开发工作有所帮助。 什么是样式穿透&#…

qt学习:串口

头文件 #include <QSerialPort> #include <QSerialPortInfo> 模块 QT core gui serialport 编程步骤 配置一个ui界面&#xff0c;五个QComboBox和一个按钮和一个QTextEdit 添加一个成员 private:QSerialPort *serial; 在构造函数中初始化ui端口列表和…

基于JAVA的中学生家校互联系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 课堂表现模块2.3 考试成绩模块2.4 家校留言模块2.5 校园通知模块 三、系统设计3.1 用例设计3.2 实体类设计3.2.1 课堂表现实体类设计3.2.2 考试成绩实体类设计3.2.3 家校留言实体类设计3.2.4 校园通知实…

ORB-SLAM3运行自制数据集进行定位教程

目前手上有一个特定的任务&#xff0c;做应急救援的视觉SLAM&#xff0c;目前公共数据集比较少&#xff0c;考虑自建数据集&#xff0c;从网络上爬虫火灾、地震的等手机录制的视屏&#xff0c;应用一些现有成熟ORB-SLAM3系统到这个数据集上看效果&#xff0c;然后根据效果得到一…

14.3 OpenGL图元装配和光栅化:抗锯齿

抗锯齿 Antialiasing 多采样是一种在OpenGL中实现所有图形元素&#xff08;点、线和多边形&#xff09;抗锯齿的技术。其原理是在每个像素位置上对几何体进行多次采样&#xff0c;然后将这些颜色样本值合并成一个可显示的颜色以呈现平滑的边缘效果。在帧缓冲区中增加了一个称为…

活字格V9 嵌入的html与活字格页面数据交互

不想看分析请直接跳到解决方案 项目场景&#xff1a; 活字格V9 嵌入的html与活字格页面的数据交互&#xff08;传值&#xff09;&#xff0c;嵌入的html用了WebSocket来控制硬件&#xff0c;获取的数据无法回传到活字格页面上&#xff0c;且嵌入的html无法使用活字格内置的js及…

《统计学简易速速上手小册》第9章:统计学在现代科技中的应用(2024 最新版)

文章目录 9.1 统计学与大数据9.1.1 基础知识9.1.2 主要案例&#xff1a;社交媒体情感分析9.1.3 拓展案例 1&#xff1a;电商销售预测9.1.4 拓展案例 2&#xff1a;实时交通流量分析 9.2 统计学在机器学习和人工智能中的应用9.2.1 基础知识9.2.2 主要案例&#xff1a;预测客户流…

设计模式-职责链模式Chain of Responsibility

职责链模式 一、原理和实现二、实现方式1) 使用链表实现2) 使用数组实现3) 扩展 作用&#xff1a;复用和扩展&#xff0c;在实际的项目开发中比较常用。在框架开发中&#xff0c;我们也可以利用它们来提供框架的扩展点&#xff0c;能够让框架的使用者在不修改框架源码的情况下&…