如何在Win系统安装Jupyter Notbook并实现无公网ip远程访问本地笔记

文章目录

      • 1.前言
      • 2.Jupyter Notebook的安装
        • 2.1 Jupyter Notebook下载安装
        • 2.2 Jupyter Notebook的配置
        • 2.3 Cpolar下载安装
      • 3.Cpolar端口设置
        • 3.1 Cpolar云端设置
        • 3.2.Cpolar本地设置
      • 4.公网访问测试
      • 5.结语

1.前言

在数据分析工作中,使用最多的无疑就是各种函数、图表、代码和说明文档,这些复杂的内容不仅让使用的人头晕脑胀,也让普通的聊天工具一脸蒙圈。沟通工具不给力,就没法协同办公,可数据分析又离不开多人配合,所以Jupyter Notebook就成为大部分数据工作人员的必备工具。正如之前所说,Jupyter Notebook很适应复杂内容的沟通,因此现在也在机器学习、深度学习和教育工作中获得广泛应用。

但Jupyter Notebook也有缺陷,就是被局限在局域网范围。那有什么工具能让Jupyter Notebook在公共互联网下使用吗,答案自然是肯定的。现在我们就来看看,如何[cpolar](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)与Jupyter Notebook配合,实现在公共互联网使用数据分析工作的无缝配合。

2.Jupyter Notebook的安装

由于jupyter notebook来源于IPython,所以想要安装使用jupyter notebook,就要先安装Python环境。好在Python安装并不复杂,直接到Python官网下载合适版本安装即可。

20230310100101

20230310100102

在安装Python时需要注意的是,要记得在安装界面下方勾选Add python.exe to PATH选项,即将python加入环境变量中。

20230310100103

Python安装完成后,就可以进行jupyter notebook的安装。

2.1 Jupyter Notebook下载安装

要安装jupyter notebook,我们需要打开windows的命令行界面,在命令行界面输入命令

pip install jupyter

系统会自动进行安装程序

20230310100104

安装完成后,再输入命令

jupyter Notebook

就能启动jupyter notebook程序

20230310100105

程序启动后,会在最下方显示jupyter notebook的地址,只要在浏览器中贴入这个地址(或者直接输入端口地址)就能打开jupyter notebook。

20230310100106

2.2 Jupyter Notebook的配置

由于我们的jupyter notebook需要连入公共互联网使用,因此有必要加入一道密码防护,并允许互联网连接。

先关闭之前的命令行窗口,再新开一个命令行窗口,输入命令

jupyter notebook --generate-config

新建一个配置文件,此时程序会反馈这个配置文件的所在位置,需要记住这个位置方便之后的操作。

20230310100107

接着输入创建访问密码的命令

jupyter notebook password

系统会要求输入两次密码(确认密码)。输入新密码后,就会反馈密码已经加入配置文件中。

20230310100108

最后,依照之前显示的config文件存放位置,打开jupyter_notebook_config.json文件,将其中那一长串密文复制下来。

20230310100109

再打开jupyter_notebook_congfig.py配置文件,添加下面的参数并保存保存

c.NotebookApp.ip='*' #允许访问的IP地址,设置为*代表允许任何客户端访问
c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$QcZlyMBu9icwhDDiUl+lZw$y4EP3WI4gZjc'#刚才生成密码时上面复制的密文
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote_access = True

20230310100110

保存所做的修改,退出修改界面,再回到命令行界面,启动jupyter notebook,就会发现在启动时出现了防火墙警报,点击允许访问即可。

20230310100111

同样的,jupyter notebook会出现一个带端口号的地址。

20230310100112

将这个地址粘贴到浏览器中,就会出现要求输入密码才能访问jupyter notebook的页面,就说明我们所做的配置已经生效。

20230310100113

完成了jupyter notebook的配置,我们就可以进行另一项必要工作,即安装cpolar,并使用cpolar为jupyter notebook生成一条专属的内网穿透数据隧道。

2.3 Cpolar下载安装

相较于jupyter notebook,cpolar的安装就无脑多了,只要在cpolar官网下载对应版本的cpolar安装程序即可。

20230310100114

笔者的操作系统为windows,因此选择windows的安装程序,双击.msi程序一路下一步即可。

20230310100115

20230310100116

需要注意的是,cpolar会为每个用户生成专属的数据隧道,并辅以复杂的token口令保证数据传输的安全,因此使用cpolar需要注册个人专属的账号,具体过程就不在此详述。

3.Cpolar端口设置

Cpolar在本地设备上安装完成后,就可以在客户端建立免费的数据隧道,连接jupyter notebook端口(具体过程参见3.2 cpolar本地设置)。不过免费的数据隧道每个24小时就会更新一次公共互联网地址,并不符合笔者的使用场景。因此笔者升级了cpolar的vip套餐,以便获得能长期稳定存在的内网穿透数据隧道。

3.1 Cpolar云端设置

要使用cpolar设立长期稳定数据隧道,需要先登录cpolar的官网,在cpolar主页面左侧找到预留按钮,进入预留数据隧道页面。在这个页面中,找到保留的二级子域名栏位。

20230310100117

保留二级子域名栏位中,我们需要对几个信息进行设置,以便cpolar生成一条我们定义的空白数据隧道,这条数据隧道最终会与jupyter notebook的端口连接起来。需要设置的信息为以下3项:

  • 地区:即服务器地址,就近选择就好;
  • 二级域名:即打算生成什么样的域名,这个二级域名会显示在最终域名中,因此需要注意输入的内容;
  • 描述:即这条数据隧道的说明,只要自己可以分辨即可。

20230310100118

完成设置后,就可以点击右侧的保留按钮,生成一条空白数据隧道。如果不打算再使用这条数据隧道,就可以点击右侧的小X,将这条数据隧道轻易删除。

20230310100119

3.2.Cpolar本地设置

在完成cpolar云端的空白数据隧道设置后,就可以回到本机的cpolar客户端,将空白数据隧道与本地jupyter notebook端口连接起来(如果没有cpolar的vip,可以直接在客户端设置临时隧道,而设置步骤都是一样的)。我们可以在开始菜单中找到cpolar的快捷方式,也可以在浏览器中输入localhost:9200,打开cpolar的Web-UI界面。

在cpolar客户端的主界面,点击左侧“隧道管理”项下的“创建隧道”按钮,进入本地隧道创建页面。与cpolar的云端设置一样,在cpolar客户端也需要进行几项设置。这些设置包括

  • 隧道名称:可以看做cpolar本地的隧道信息注释,只要方便分辨即可;
  • 协议:即以何种方式连接本地端口,这里我们选择http协议;
  • 本地地址:本地地址即为本地网站的输出端口号,在这里输入888;
  • 域名类型:由于我们已经在cpolar云端预留了二级子域名的固定隧道,因此勾选“二级子域名”(如果有自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,该例子中为“jupyterwork”。如果打算设置临时内网穿透数据隧道,这里则勾选“随机域名”;
  • 地区:与cpolar云端预留的信息一样,我们依照实际使用地填写即可;

完成这些设置后,就可以点击页面下方的“创建”按钮,生成能够穿透本地局域网的数据隧道。

20230310100120

本地隧道生成后,可以在隧道管理项下的隧道列表中看到,并且还可以在这里对这条隧道的开启、关闭、删除进行操作,当然,也能在编辑中对这条隧道的信息进行变更。

20230310100121

而这条隧道的公共互联网地址,则可以在状态项下的在线隧道列表中找到

20230310100122

4.公网访问测试

最后,我们将cpolar客户端显示的地址粘贴到位于本地局域网以外设备的浏览器中,就能打开本地的jupyter notebook。

20230310100123

5.结语

至此,我们就完成了使用cpolar生成的数据隧道,将内网的jupyter notebook发布到公共互联网的操作。虽然步骤看着很多,但实际操作起来非常快。只要注意对jupyter notebook配置时不要输入错误指令,应该能很轻松的完成。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YoloV8改进策略:Conv改进|DCNv4最新实践|高效涨点|多种改进教程|完整论文翻译

摘要 涨点效果:在我自己的数据集上,mAP50 由0.986涨到了0.993,mAP50-95由0.737涨到0.77,涨点明显! DCNv4是可变形卷积的第四版,速度和v3相比有了大幅度的提升,但是环境搭建有一定的难度,对新手不太友好。如果在使用过程遇到编译的问题,请严格按照我写的环境配置。 …

论文笔记:TimeGPT-1

时间序列的第一个基础大模型 1 方法 最basic的Transformer架构 采用了公开可用的最大时间序列数据集进行训练,包含超过1000亿个数据点。 训练集涵盖了来自金融、经济、人口统计、医疗保健、天气、物联网传感器数据、能源、网络流量、销售、交通和银行业等广泛领域…

自定义BeanNameGenerator生成规则

通过点进ComponentScan注解进入源码可以看到 追随BeanNameGenerator进入源码可以看到该类是个借口且只有一个方法 点击上面黑色箭头出现两个实现方法 点击第一个方法 进入determineBeanNameFromAnnotation方法中 通过上诉自定义一个生成beanName方法 先创建一个CustomeBeanN…

Docker本地部署APITable结合内网穿透实现公网访问

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 前言 vika维格表作为新一代数据生产力平台,是一款面向 API 的智能多维表格。它将复杂的可视化数据库、电子表格、实时在线协同、低代码开发技术四合为一&am…

QT+VS实现Kmeans++

1、Kmeans的原理如下: (1)首先选取样本中任一数据点作为第一个聚类中心; (2)计算样本每一个数据点至现所有聚类中心的最近距离,并记录下来; (3)逐一挑选所…

【C++】引用、内联函数、auto关键字等

前言:在前面我们讲解了C入门基础的一些学习例如命名空间、缺省参数、函数重载等。今天我们将进一步的学习,跟着博主的脚步再次往前迈一步吧。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C学习…

SpringBoot 源码解析 - 持续更新

开始 spring initilizer:根据依赖构建工具、springboot 版本等生成 Java 工程。手把手教你手写一个最简单的 Spring Boot Starter Starter 命名规则 Spring 官方定义的 Starter 通常命名遵循的格式为 spring-boot-starter-{name},例如 spring-boot-star…

目标检测数据集制作(VOC2007格式数据集制作和处理教程)

VOC2007数据集结构(目标检测图像分割) #VOC2007数据集结构如下: VOC2007|-Annotations#里面存放的是每一张图片对应的标注结果,为XML文件,#标注完成后JPEGImages每张图片在此都有一一对应的xml文件|-ImageSets#存放的是…

uniapp v3组合式语法-项目创建

打开uni编译器HbuildX,右键新建项目,出现如下界面 输入完项目名称和地址后.选择红色箭头所指处的vue版本3 然后点击确认,即可创建uniapp,v3项目 创建完项目后,可以看到如下项目结构 项目结构uniapp官网上已经写的很详细了,这里就使用uniapp官网的介绍 一个uni-app工程&…

用BufferedReader快速输入有巨坑!!大佬们都是这么输入的

刷洛谷题单第二天,今天第一道题还是挺简单的,但是又被现实给了一级大逼兜子,做这题关键还是想熟悉Java的快速输入。还有做这道题很容易出现RE错误,下面总结了常见的RE错误导致情况(点击跳转下文) 我的上篇…

增存量市场大爆发!国产通信中间件「反攻」

梳理2023年智能驾驶的发展脉络可见,消费者对智能驾驶的认可度和接受度越来越高,带动高速NOA迈向了规模化普及新阶段,城市NOA初露锋芒。 从更长远的行业变革周期来看,智能驾驶的技术迭代还在继续,叠加电子电气架构的深…

软件测试人员常用的功能测试方法分享

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。 常用的测试方法如下: 1. 页面链接检查 每一个链接是否都有对应的页面,并且页面之间切换正确。 2. 相关性检查 删除/…

基于springboot的房屋交易系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

工业自动化步进电机用电机驱动芯片TMC5160

TMC5160 数据手册 TMC5160 集成了完整的运动控制功能、高质量的电流调节功能和强大的外部 MOSFET 驱动,涵盖了多种从电池供电的高效系统到 20 安培电机线圈电流的嵌入式应用。TMC5160 包含驱动电机所需的全部智能。配置 TMC5160 目 标 位 置 就 可 以 驱 动 电 机 。…

C++初阶:C/C++内存管理、new与delete详解

之前结束了类与对象:今天进行下面部分内容的学习 文章目录 1.C/C内存分布2.C语言中动态内存管理方式:malloc/calloc/realloc/free3.C动态内存管理方式3.1new/delete操作内置类型3.2new和delete操作自定义类型 4.operator new与operator delete函数5.new和…

题目:冒险者公会(蓝桥OJ 3611)

问题描述: 解题思路: 官方: 注意点: 在前期的排序操作,因为需要找到如样例所示的每轮最大,因此我们需要用0代替没有的委托(即样例斜杠)。如何用0代替:将村庄委托数量默认…

基于springboot校园交友网站源码和论文

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

ArcgisForJs快速入门

文章目录 0.引言1.前端代码编辑工具2.使用ArcgisForJs创建一个简单应用3.切片地图服务图层4.动态地图服务图层5.地图事件 0.引言 ArcGIS API for JavaScript是一款由Esri公司开发的用于创建WebGIS应用的JavaScript库。它允许开发者通过调用ArcGIS Server的REST API&#xff0c…

C++笔记之RTTI、RAII、MVC、MVVM、SOLID在C++中的表现

C++笔记之RTTI、RAII、MVC、MVVM、SOLID在C++中的表现 —— 杭州 2024-01-28 code review! 文章目录 C++笔记之RTTI、RAII、MVC、MVVM、SOLID在C++中的表现1.RTTI、RAII、MVC、MVVM、SOLID简述2.RAII (Resource Acquisition Is Initialization)3.RTTI (Run-Time Type Informat…

ABeam Insight | 大语言模型系列 (1) : 大语言模型概览

大语言模型系列 引入篇 ABeam Insight 自从图灵测试在20世纪50年代提出以来,人类一直不断探索机器如何掌握语言智能。语言本质上是一个由语法规则支配的错综复杂的人类表达系统。 近年来,具备与人对话互动、回答问题、协助创作等能力的ChatGPT等大语…