Jupyterlab+内网云穿透傻瓜式教程

文章目录

  • Jupyterlab+内网云穿透傻瓜式教程
  • 1、Miniforge安装
  • 2、Jupyter Lab安装
  • 3、Python语言服务器安装
  • 4、PowerShell 7安装
  • 5、更改jupyter lab配置
  • 6、内网穿透
  • 7、高级体验

Jupyterlab+内网云穿透傻瓜式教程

1、Miniforge安装

如下图,以Windows安装为例,打开conda-forge 链接并下载Miniforge。下载完成后一路点击next进行安装。(注意选择安装路径的时候不要选择C盘系统盘,因为C盘满了会影响系统运行性能)

Miniforge是一个轻量级的Python发行版,旨在提供与Anaconda相似的环境管理和包管理功能,但**体积更小,更适合需要快速部署或资源受限的环境。**它是Conda-forge社区的一个项目,Conda-forge是一个提供Conda可安装软件包的社区驱动的平台。

image-20240405195413130

image-20240405201713060

如下图,安装完成后打开windows搜索框并搜索编辑系统环境变量并打开,将Miniforge的三个环境变量添加到系统中去,注意替换成自己实际的安装路径。

D:\ruanjian\Miniforge\condabin
D:\ruanjian\Miniforge\Library\bin
D:\ruanjian\Miniforge\Scripts
image-20240406140159342

image-20240406140718705

环境变量配置好后打开windows搜索框并搜索Miniforge Prompt,将其固定在任务栏后并打开,此时你会发现出现了一个和windows cmd一样的黑窗口,同时系统已经预装好了conda,python等一系列开发环境包,并默认进入了conda的base环境中。

  • conda是一个跨平台的包管理器,不仅可以安装Python包,还可以管理Python环境、非Python依赖等,专门针对科学计算和数据科学领域。
  • conda会自动处理包之间的依赖关系,减少了手动解决依赖问题的需要。
  • conda支持创建隔离的环境,使得在同一系统上安装不同版本的Python和包变得容易。

image-20240406141536846

2、Jupyter Lab安装

如下图在终端窗口中依次执行以下命令进行jupyterlabjupyter_nbextensions_configuratorjupyter notebook的安装

  • JupyterLab 是 Jupyter Notebook 的下一代前端,提供了一种更为现代化和灵活的交互式计算环境。它通过模块化设计实现了更优化的用户界面,支持多标签式界面,允许用户同时处理多个笔记本、文本文件、终端和代码控制台。
  • JupyterLab的插件架构增强了其扩展性,使得用户能够根据需求安装或开发新功能。其数据查看和编辑功能也更加强大,支持多种数据格式,并优化了对多语言的支持。
  • JupyterLab还内嵌了终端,简化了命令行工具的使用,同时文件浏览器功能也得到了增强。代码和输出拆分功能使得比较和查看多个输出变得更加便捷。JupyterLab还更好地支持云计算环境,便于团队和教育环境中的应用。
# 查看当前base环境的python版本
python --version

# conda clean 命令用于清理 conda 下载和缓存的各种文件,以释放磁盘空间。如果您不是第一次安装conda请执行该命令将开发环境清理干净。
conda clean --all

# 安装jupyterlab,并查看其版本
conda install jupyterlab
jupyter lab --version

# 该插件提供了一个用户界面,允许用户轻松地启用、配置和管理 Jupyter Notebook 的扩展(nbextensions)。这些扩展可以增强 Jupyter Notebook 的功能,添加新的工具、编辑器功能、可视化效果等。
conda install jupyter_nbextensions_configurator

# 对jupyter notebook进行降级处理,使其能与jupyterlab相兼容
conda install jupyter notebook==6.4.3
jupyter notebook --version

image-20240406105835308

3、Python语言服务器安装

**JupyterLab支持多种编程语言,而语言服务器是一种提供特定编程语言支持的插件,例如自动完成、语法高亮、代码导航等功能。**这里以python语言服务器为例子进行安装,其它语言服务器可根据自己的需要来进行安装。

  • python-language-server (pyls): 这是一个python语言服务器,为编辑器和IDE提供Python代码的自动完成、定义查找、代码诊断等功能。它可以帮助提高代码质量和开发效率。
  • pyright: 这是一个用于Python的静态类型检查工具,它可以在不运行代码的情况下检查代码中的类型错误。Pyright是由微软开发的,它提供了快速的类型检查和丰富的类型检查功能。
  • jedi: 这是一个自动完成和代码分析库,它是许多Python IDE和编辑器(如PyCharm、VS Code等)中自动完成功能的基础。Jedi能够理解Python代码的复杂性和动态特性,提供准确的代码补全和导航功能。
# 安装python相关的插件
conda install python-language-server pyright jedi

下表是JupyterLab支持的其他语言服务器

语言服务器名称服务语言功能描述
bash-language-serverBash提供代码补全、诊断、格式化和跳转等功能
dockerfile-language-server-nodejsDockerfile提供代码补全、诊断和跳转等功能
javascript-typescript-langserverJavaScript 和 TypeScript提供代码补全、诊断和跳转等功能
julia-language-serverJulia提供代码补全、诊断和跳转等功能
r-languageserverR提供代码补全、诊断和跳转等功能
sql-language-serverSQL提供代码补全、诊断和跳转等功能
texlabLaTeX提供代码补全、诊断、格式化和跳转等功能
typescript-language-serverTypeScript提供代码补全、诊断和跳转等功能
unified-language-server统一语言提供代码补全、诊断和跳转等功能
vscode-css-languageserver-binCSS提供代码补全、诊断和跳转等功能
vscode-html-languageserver-binHTML提供代码补全、诊断和跳转等功能
vscode-json-languageserver-binJSON提供代码补全、诊断和跳转等功能
yaml-language-serverYAML提供代码补全、诊断和跳转等功能

4、PowerShell 7安装

由于Miniforge默认使用的是windows的cmd终端,不兼容一般的linux命令(如ls,cp,mv,rm,cat等),也没有命令的自动补全功能,因此我们可以使用功能更加强大的PowerShell 7来作为我们的默认终端

如下图,打开PowerShell | newbe,下载最新的PowerShell 7.4.1版本并安装,安装完成后在搜索栏搜索powershell将其固定在任务栏中代替Miniforge的使用

image-20240406135120708

image-20240406135034538

image-20240406135923273

image-20240406145513553

5、更改jupyter lab配置

# 生成jupyter lab的配置文件
jupyter lab --generate-config

# 生成jupyter notebook的配置文件
jupyter notebook --generate-config

如下图,打开C:\Users\你的用户名\.jupyter目录,用windows自带的记事本更改jupyter_lab_config.py配置文件,将jupyterlab内的终端更改成自己喜欢的,支持git bashpowershell 7,我这里以本机的powershell 7为例

# 在记事本内搜索 c.ServerApp.terminado_settings = {},在下面一行粘贴下面的终端配置
c.ServerApp.terminado_settings = {
    'shell_command': ['pwsh.exe']
}

# 在记事本内搜索 c.ServerApp.root_dir,在下面一行粘贴下面的默认打开目录配置,根据自己的实际工作目录进行修改
c.ServerApp.root_dir = 'D:\\desktop\\study\\jupyter-ML'

# 在记事本内搜索 c.ServerApp.browser,在下面一行粘贴下面的默认打开浏览器配置,根据自己的实际浏览器路径进行修改,Edege这样修改
import webbrowser
webbrowser.register('msedge',None, webbrowser.GenericBrowser(r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'))
c.ServerApp.browser ='msedge'

# 如果是chrome的话这样修改
import webbrowser
webbrowser.register('chrome', None, webbrowser.GenericBrowser(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'))
c.ServerApp.browser = 'chrome'

image-20240406133832924

image-20240406133913243

image-20240406144544301

image-20240406144845744

修改完成之后在powershell 7中打开终端,执行jupyter lab(点击键盘右键:“->”,即可自动补全历史命令),这时会自动打开浏览器,进入jupyter lab设置好的工作目录,

jupyter lab

image-20240406144133827

image-20240406143918720

再打开一个powershell终端,在终端执行以下命令,设置jupyter lab的访问密码(输入密码时屏幕并不会显示,这是终端的安全措施,输入完成后按回车即可),密码保存至本地的~\.jupyter\jupyter_server_config.json内,如果遗忘可以打开该文件进行查找

jupyter server password

image-20240406154627025

6、内网穿透

在任务栏中右键powershell打开一个终端,查看本机内网ip,支持将多个内网设备的多个服务转发到公网上。

# 查看本机局域网ip,如果电脑是连的网线,就看以太网的;连的wifi热点,就看WLAN的
ipconfig

image-20240406150348371

image-20240406150419576

以上图中wifi热点的ip:192.168.43.10为例,将下面命令中的内网ip更改为本机查询到的实际内网ip

# 此时,关闭刚才打开的jupyter lab,并以下面的命令重新启动,输入刚才设置的密码
jupyter lab --ip=192.168.43.10 --NotebookApp.allow_origin='*'

image-20240406160442305

将下面命令中的内网ip更改为本机查询到的实际内网ip,匿名隧道目前提供了上海和香港的两条隧道,任选其中一条执行即可

# 执行以下命令建立匿名隧道,将http或https的链接和你设置的jupyter lab密码转发给你的朋友们,他们就可以随时随地同步调试你机器上的jupyter lab了

# 上海地区服务器
ssh -R 80:192.168.43.10:8888 sh@sh3.neiwangyun.net

# 香港地区服务器
ssh -R 80:192.168.43.10:8888 hk@hk3.neiwangyun.net

image-20240406151224545

image-20240406160627905

image-20240406160735200

7、高级体验

相比与其他提供内网穿透服务的软件,内网云无需安装任何软件进行任何复杂的配置,只需一行命令即可将内网上的服务转发到公网上,对小白的体验极其友好,能以最快的速度完成内网穿透。

免费的匿名隧道只有2小时的使用时长,且一次连接,最多保持两小时有效,每次连接,网址和端口都不一样。对于想要获得高级体验的同学来说,最低79元一年的付费隧道具有如下优势:内网云——内网也可以变成云 (neiwangyun.net)

  • 仪表盘左侧 我的隧道 可以查看和设置个人隧道
  • 每条个人隧道,都有固定的网址和端口
  • 个人隧道支持cname解析
  • cname的ssl证书功能正在开发和测试阶段,暂未开放使用
  • 只要网络没波动,ssh连接可以维持到宇宙爆炸

image-20240406163201518

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

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

相关文章

记Kubernetes(k8s):访问 Prometheus UI界面:Warning: Error fetching server time

记Kubernetes(k8s):访问 Prometheus UI界面:Warning: Error fetching server time 1、报错详情2、解决3、再次访问 PrometheusUI界面 💖The Begin💖点点关注,收藏不迷路💖 1、报错详情 Warning:…

Rust 基础语法和数据类型

数据类型 Rust提供了一系列的基本数据类型,包括整型(如i32、u32)、浮点型(如f32、f64)、布尔类型(bool)和字符类型(char)。此外,Rust还提供了原生数组、元组…

什么是文档一体化?文档一体化有什么意义?

文档一体化是从文书和档案工作全局出发,实现从文件生成制发到归档管理的全过程控制。包括:文档实体生成一体化,文档管理一体化,文档信息利用一体化,文档规范一体化。 文档一体化的意义在于: 1、使档案收集完…

11-pyspark的RDD的变换与动作算子总结

目录 前言 变换算子动作算子 PySpark实战笔记系列第二篇 10-用PySpark建立第一个Spark RDD(PySpark实战笔记系列第一篇)11-pyspark的RDD的变换与动作算子总结(PySpark实战笔记系列第二篇)) 前言 一般来说,RDD包括两个操作算子: 变换(Transf…

BUUCTF:BUU UPLOAD COURSE 1[WriteUP]

构造一句话PHP木马 <?php eval(system($_POST[shell])); ?> 利用eval函数解析$shell的值使得服务器执行system命令 eval函数是无法直接执行命令的&#xff0c;只能把字符串当作php代码解析 这里我们构造的木马是POST的方式上传&#xff0c;那就用MaxHacKBar来执行 …

【数据库】SQL简介

SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种用于管理关系型数据库管理系统&#xff08;RDBMS&#xff09;的标准化语言。它用于访问和操作数据库中的数据&#xff0c;执行各种任务&#xff0c;如插入、更新、删除和检索数据&#x…

215 基于matlab的快速跟踪算法

基于matlab的快速跟踪算法&#xff0c;提出一种简单又快速、 鲁棒性的算法&#xff0c;基于贝叶斯框架下&#xff0c;该模型 &#xff08;即图像强度和从目标位置&#xff09; 的低级功能及周边地区的统计相关性的时空关系。跟踪问题是通过计算信心地图&#xff0c;并将以最大限…

数据结构和算法:分治

分治算法 分治&#xff08;divide and conquer&#xff09;&#xff0c;全称分而治之&#xff0c;是一种非常重要且常见的算法策略。分治通常基于递归实现&#xff0c;包括“分”和“治”两个步骤。 1.分&#xff08;划分阶段&#xff09;&#xff1a;递归地将原问题分解为两个…

初学python记录:力扣1483. 树节点的第 K 个祖先

题目&#xff1a; 给你一棵树&#xff0c;树上有 n 个节点&#xff0c;按从 0 到 n-1 编号。树以父节点数组的形式给出&#xff0c;其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节点。 实现…

docker搭建EFK

目录 elasticsearch1.创建网络2.拉取镜像3.创建容器如果出现启动失败&#xff0c;提示目录挂载失败&#xff0c;可以考虑如下措施 开放防火墙端口4.验证安装成功重置es密码关闭https连接创建kibana用户创建新账户给账户授权 kibana1.创建容器2.验证安装成功3.es为kibana创建用户…

金融中的数学模型

平稳时间序列 时间序列的基本统计特性&#xff0c;如均值、方差和自相关等&#xff0c;在时间上不随时间的推移而发生显著的变化。 平稳时间序列通常具有以下特征&#xff1a; 均值不随时间变化&#xff1a;序列的均值在时间上保持恒定。方差不随时间变化&#xff1a;序列的…

元宇宙虚拟空间的场景渲染(五)

前言 该文章主要讲元宇宙虚拟空间的场景渲染&#xff0c;基本核心技术点&#xff0c;不多说&#xff0c;直接引入正题。 场景渲染 下面第二个图中的代码是一个循环渲染逻辑&#xff0c;首先getDelta 获取2次时间的时间间隔&#xff0c;requestAnimationFrame请求我们的一个动…

C++模版简单认识与使用

目录 前言&#xff1a; 1.泛型编程 2.函数模版 3.类模版 为什么要有类模版&#xff1f;使用typedef不行吗&#xff1f; 类模版只能显示实例化&#xff1a; 注意类名与类型的区别&#xff1a; 注意类模版最好不要声明和定义分离&#xff1a; 总结&#xff1a; 前言&…

RobotFramework测试框架(13)--扩展RF

扩展RF 可以写Python库 Static Library 静态库中RF的关键字被定义为python的方法。 Static Library With a Class 将Python类导入为Library&#xff0c;则类中的方法可以是关键字。 class DemoLibrary:def __init__(self, *args, **kwargs):print(f"Sample Library …

008 CSS盒子模型

文章目录 盒子模型内容-宽度和高度内边距-padding边框-border圆角-border-radius 外边距-margin上下margin的传递上下margin的折叠块级元素的水平居中行内级元素(包括inline-block元素)的水平居中 外轮廓-outline盒子阴影-box-shadow文字阴影-text-shadow行内非替换元素的特殊性…

代码随想录算法训练营第三十二天| LeetCode 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

一、LeetCode 122.买卖股票的最佳时机II 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII.html 状态&#xff1a;已解决 1.思路 这题的核心思路是&#xff1a;…

Python爬虫-爬取药膳食谱数据

&#x1f388; 博主&#xff1a;一只程序猿子 &#x1f388; 博客主页&#xff1a;一只程序猿子 博客主页 &#x1f388; 个人介绍&#xff1a;爱好(bushi)编程&#xff01; &#x1f388; 创作不易&#xff1a;喜欢的话麻烦您点个&#x1f44d;和⭐&#xff01; &#x1f388;…

第二十五周代码(蓝桥杯查缺补漏)

2024/03/31 周日 填充 题目链接 【参考代码】 想用暴力&#xff0c;没过 //枚举&#xff0c;未出结果QAQ #include <bits/stdc.h> using namespace std; string s00 "00"; string s11 "11"; int ans 0; //m个问号&#xff0c;子串有2^m…

C#探索之路基础夯实篇(4):UML类图中的六种关系详细说明

文章目录 UML类图中的关系前景1、关联关系&#xff08;Association&#xff09;&#xff1a;2、聚合关系&#xff08;Aggregation&#xff09;&#xff1a;3、组合关系&#xff08;Composition&#xff09;&#xff1a;4、泛化关系&#xff08;Generalization&#xff09;&…

计算机网络——37认证

认证 目标&#xff1a;Bob需要Alice证明他的身份 Protocol ap1.0&#xff1a;Alice说"A am Alice" 可能出现的问题&#xff1a; 在网络上Bob看不到Alice&#xff0c;因此Trudy可以简单的声称他是Alice 认证&#xff1a;重新尝试 Protocol ap2.0&#xff1a;Alice…