jupyter lab build失败,提示需要安装版本>=12.0.0的nodejs但其实已从官网安装18.17.0版本 的解决方法

出现的问题如题目所示,这个问题差点要把我搞死了。。。但还是在没有重装的情况下解决了😘。

问题来源

初衷是想安装lsp扩展,直接在jupyter lab网页界面的extensions中搜索lsp并点击install @krassowski/jupyterlab-lsp,会提示需要先在命令行进行 pip install jupyter-lsp 或者使用 conda install jupyter-lsp ,如果已经安装,点击继续的话,会接着出现提示 需要安装 node.js 或 npm 作为前提。

由于直接在conda环境中安装 nodejs 和 npm 非常慢,于是我选择去官网安装,中文英文的官网都行,我用的这个nodejs中文官网,直接选择长期维护版下载即可:
在这里插入图片描述
下载的是一个 .msi 文件,双击安装,并选择将 nodejs 添加到系统变量中,nodejs的安装就算完成了。由于 nodejs 自带 npm,因此 npm 也不需要单独安装了。

判断安装成功与否,在命令行输入 node -v 和 npm -v 查看版本号,能看到的就是安装好了,我的版本号如下:
在这里插入图片描述

jupyter lab build失败,提示需要安装版本>=12.0.0的nodejs

但根据上面的内容,我其实已经从官网安装过18版本的nodejs了。

查看conda环境中的nodejs 和npm版本,发现确实还是 0.1.1 的版本,这里我尝试了很多网上的方法,比如直接 conda install 或者 conda install -c forge 最新版本的nodejs什么的,甚至我尝试使用 msi 文件在conda里本地安装,想把我虚拟环境里的包版本提上去,最后当然是失败了。

总之,基本上看到的方法我都用过了,包括升级jupyterlab,还是不行,差点要重装。

解决方法

最后的解决方法是既然整体环境中是有 nodejs 和 npm 的,而 conda 环境又是优先 本环境内的包,那我直接把本环境里低版本的包删掉不就好了?不用升级,不用忍受慢的要死的conda 网速直接 conda uninstall nodejs。

(这部分因为当时只是本电脑菜鸡的尝试,因此没有截图记录)

经过上述步骤后,在命令行进行 jupyter lab build 时还是报错了,但起码没有 nodejs>=12.0.0 的提示报错,也是一个进步!

不报错 nodejs >= 12.0.0 相关的 Runtime Error,转而报错 RuntimeError: JupyterLab failed to build,问题解决:

观察 jupyter labextension list ,看最后一行,发现只有 lsp 插件是待 build 的。如下图:
在这里插入图片描述

这个问题的解决方案,插件的作者也给出了回答:https://stackoverflow.com/questions/68276261/runtimeerror-jupyterlab-failed-to-build,先 uninstall,升级 jupyterlab,再重新 pip install 即可。但其实这一步我好像没有升级 jupyter lab,直接在命令行 install lsp之后,我查看了一下jupyter lab的版本,发现从 3.0 自动升级成了 3.6.5,我也不知道咋回事。
把不准的uu还是可以按作者给出的方法来,保险一点。

后续问题

发现不能通过在命令行直接 jupyter lab 的方式打开 lab,发现报错:

AttributeError: 'ExtensionManager' object has no attribute '_extensions'
  

查看过程中的报错提示会发现如下内容:
在这里插入图片描述
可见最后一行的 nbclassic 是关键,查看自己的 nbclassic 版本后发现是 0.2.6 的。

这个问题的解决方案参考macos启动jupyter lab 错误:attributeerror: ‘extensionmanager‘ object has no attribute ‘_extensions‘

直接在命令行 pip install nbclassic == 0.2.8 即可:
在这里插入图片描述

完结撒花🎇🎇🎇

  
这下再直接 jupyter lab,就可以打开了,享受插件吧!
在这里插入图片描述
要使用 drawio,新建一个 Launcher,点击 diagram 即可
在这里插入图片描述
打开之后是下面这样:
在这里插入图片描述

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

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

相关文章

mysql数据库如何转移到oracle

mysql数据库转移到oracle 在研发过程中,可能会用到将表数据库中的表结构及数据迁移到另外一种数据库中, 比如说从mysql中迁移到oracle中, 常用的方法有好些,如下 1、使用powerdesigner,先连接mysql然后生成mysql的p…

Amazon CloudFront 部署小指南(五)- 使用 Amazon 边缘技术优化游戏内资源更新发布...

内容简介 游戏内资源包括玩家的装备/弹药/材料等素材,对游戏内资源的发布和更新是游戏运营商的一个常规业务流程,使用频率会十分高,所以游戏运营商希望该流程可以做到简化和可控。针对这个需求,我们设计了 3 个架构,面…

C#获取文件信息的方法汇总

前言 在.NET开发中,用C#获取文件信息是比较常见的操作。通过获取文件信息,我们可以了解文件的属性、大小、创建日期、修改日期等各种元数据信息。比如我们网站需要上传文件,可以用扩展名称控制上传的类型,获取文件的大小来限制上传…

UML的类图规则

public:号 private:-号 protected:#号类图多重关系: 泛化关系: 概念:也就是继承关系。表示方式:用带空心三角形的直线来表示。例子:动物和猫,人和老师关联关系: 概念:用于表示一类对…

MODBUS TCP转CCLINK IE协议网关cclink通讯异常的处理方法

你是否曾经遇到过需要将不同的设备连接到一个统一的网络中?或者你是否曾经遇到过设备之间的通讯协议不兼容的问题?捷米的JM-CCLKIE-TCP通讯网关就是为解决这些问题而设计的。 JM-CCLKIE-TCP通讯网关是一款自主研发的CCLINK IE FIELD BASIC从站功能的通讯…

git 命令

目录 git clone 克隆分支cloneclone 指定分支 查询配置查看分支查看所有分支(包含本地分支和远程分支)查看远程仓库的分支(本地分支不会显示)查看本地分支(远程分支不会显示) checkout命令参考 git clone 克…

centos中的swap.img可以删除吗

swap.img 是 CentOS 系统中的交换分区文件,用于辅助内存管理。交换分区在系统内存不足时用于存储不常用的数据,而不是直接写入硬盘。一般情况下,不建议删除交换分区文件,因为它对系统的正常运行非常重要。 如果您真的希望删除交换…

P3741 honoka的键盘

题目背景 honoka 有一个只有两个键的键盘。 题目描述 一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串。所以,她想改变至多一个字符(或者不做任何改变&#xf…

Vue实现二级路由

1.导入路由 // 引入二级路由组件 import Myorder from "/pages/Center/myOrder"; import GroupOrder from "/pages/Center/groupOrder"; 2.注册路由 {name: "center",path: "/center",component: Center,meta: {show: true,},// 二级…

【工作记录】docker安装gitlab、重置密码@20230809

前言 本文记录下基于docker安装gitlab并重置管理员密码的过程。 作为记录的同时也希望能帮助到需要的朋友们。 搭建过程 1. 准备好docker环境并启动docker [rootslave-node1 docker-gitlab]# docker version Client:Version: 18.06.1-ceAPI version: 1.38…

根据源码,模拟实现 RabbitMQ - 从需求分析到实现核心类(1)

目录 一、需求分析 1.1、对 Message Queue 的认识 1.2、消息队列核心概念 1.3、Broker Server 内部关键概念 1.4、Broker Server 核心 API (重点实现) 1.5、交换机类型 Direct 直接交换机 Fanout 扇出交换机 Topic 主题交换机 1.6、持久化 1.7…

Objective-C获取变量类型的方法

在Objective-C中,要获取一个对象的类型,可以使用[object class]方法。这将返回一个Class对象,表示该对象的类型。 另外,typeid是C中的关键字,用于获取一个变量的类型信息。在Objective-C中,typeid并不适用于…

对于生产者消费者/shutdown/close的补充

信号量解决生产者消费者/读写者问题_右大臣的博客-CSDN博客 一点补充 模拟简单的string&#xff0c;循环队列&#xff0c;vector_右大臣的博客-CSDN博客 补充总结 写一个循环队列 用个循环队列去表示class myqueue{ vector<int>qq capacity 容量 front 头 rear 尾…

PyTorch翻译官网教程-FAST TRANSFORMER INFERENCE WITH BETTER TRANSFORMER

官网链接 Fast Transformer Inference with Better Transformer — PyTorch Tutorials 2.0.1cu117 documentation 使用 BETTER TRANSFORMER 快速的推理TRANSFORMER 本教程介绍了作为PyTorch 1.12版本的一部分的Better Transformer (BT)。在本教程中&#xff0c;我们将展示如…

Openlayers实战:列表与图层双向信息提示

在Openlayers的实际项目中,经常会在左侧列出信息列表,右边的地图上显示的是对应的图层内容,两边是一一对应的,为了看出来选择的是哪一个,就需要两边互相提示,本示例就很好的展示了这种效果,具体的方法请参考源代码。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhu…

【Kubernetes】Pod基础概念

目录 在Kubernetes集群中Pod有如下两种使用方式&#xff1a; pause容器使得Pod中的所有容器可以共享两种资源&#xff1a;网络和存储。 ●网络&#xff1a; ●存储&#xff1a; 总结&#xff1a; kubernetes中的pause容器主要为每个容器提供以下功能&#xff1a; Kubern…

【ES问题总结】

文章目录 1、什么是ElasticSearch;2、ElasticSearch的基本概念&#xff1b;3、什么是倒排索引&#xff1b;4、DocValue的作用&#xff1b;5、text和keyword类型的区别&#xff1b;7、query和filter的区别&#xff1b;8、es写数据的过程&#xff1b;9、es的更新和删除流程&#…

后端常使用的中间件知识点--持续更新

类型难度mysqlmysql中SQL优化&#xff1a;多角度分析包学包会&#xff0c;sql优化全过程&#xff0c;刨根分析redis多角度剖析redis数据结构及底层实现原理、应用场景MQ简单大体说明RabbitMQ的使用&#xff08;简单版&#xff09;mybatis使用JDBC的批量插入百万数据要多少秒一遍…

Prometheus Blackbox Exporter 的 HTTP 探测指标中各个阶段的时间统计信息

在 Prometheus Blackbox Exporter 的 HTTP 探测指标中&#xff0c;probe_http_duration_seconds 指标包含各个阶段的时间统计信息。这些阶段代表了 HTTP 探测的不同阶段和指标。以下是各个阶段的含义&#xff1a; phase"dns_lookup"&#xff1a;这是指进行 DNS 查找…

每日一题——寻找旋转排序数组中的最小值(I)

寻找旋转排序数组中的最小值——I 题目链接 思路 首先我们以数组[1,2,3,4,5,6,7]举个例子&#xff0c;经过旋转后它无非就这两种情况&#xff1a; 情况一&#xff1a;旋转过后数组变成两段有序数列&#xff1a; 情况二&#xff1a;旋转过后数组不变&#xff0c;仍然有序&…