当前位置: 首页 > news >正文

jupyter版本所引起的扩展插件问题

文章目录

    • 如何永久切换python安装源为https://mirrors.aliyun.com/pypi/simple
      • 方法一:通过配置文件永久设置(推荐)
        • 步骤 1:创建或修改 pip 配置文件
        • 步骤 2:验证配置是否生效
      • 方法二:通过命令行直接配置
      • 效果验证
  • 彻底删除旧版 Jupyter Notebook 并重新安装最新版本及插件的完整步骤:
      • 步骤 1:彻底卸载旧版 Jupyter 及相关组件
      • 步骤 2:安装最新版 Jupyter Notebook
      • 步骤 3:安装插件扩展

D:\PythonWorkPlace>jupyter contrib nbextension install --user
Traceback (most recent call last):
File “D:\python2024\Lib\site-packages\jupyter_contrib_core\notebook_compat\nbextensions.py”, line 6, in
from notebook.extensions import BaseExtensionApp
ModuleNotFoundError: No module named ‘notebook.extensions’
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “D:\python2024\Lib\site-packages\jupyter_contrib_core\notebook_compat\nbextensions.py”, line 10, in
from notebook.nbextensions import BaseNBExtensionApp
ModuleNotFoundError: No module named ‘notebook.nbextensions’
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “”, line 198, in _run_module_as_main
File “”, line 88, in run_code
File "D:\python2024\Scripts\jupyter-contrib.EXE_main
.py", line 7, in
sys.exit(main())
~~~~^^
File “D:\python2024\Lib\site-packages\jupyter_core\application.py”, line 283, in launch_instance
super().launch_instance(argv=argv, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File “D:\python2024\Lib\site-packages\traitlets\config\application.py”, line 1073, in launch_instance
app = cls.instance(**kwargs)
File “D:\python2024\Lib\site-packages\traitlets\config\configurable.py”, line 583, in instance
inst = cls(*args, **kwargs)
File “D:\python2024\Lib\site-packages\jupyter_contrib_core\application.py”, line 27, in init
self.refresh_subcommands()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File “D:\python2024\Lib\site-packages\jupyter_contrib_core\application.py”, line 43, in refresh_subcommands
get_subcommands_dict = entrypoint.load()
File "D:\python2024\Lib\site-packages\pkg_resources_init
.py", line 2781, in load
return self.resolve()
~~~~~~~~~~~~^^
File "D:\python2024\Lib\site-packages\pkg_resources_init
.py", line 2787, in resolve
module = import(self.module_name, fromlist=[‘name’], level=0)
File “D:\python2024\Lib\site-packages\jupyter_contrib_nbextensions\application.py”, line 7, in
from jupyter_contrib_core.notebook_compat.nbextensions import ArgumentConflict
File “D:\python2024\Lib\site-packages\jupyter_contrib_core\notebook_compat\nbextensions.py”, line 12, in
from ._compat.nbextensions import BaseNBExtensionApp
File “D:\python2024\Lib\site-packages\jupyter_contrib_core\notebook_compat_compat\nbextensions.py”, line 35, in
from notebook.nbextensions import (
ArgumentConflict, version, _safe_is_tarfile,
)
ModuleNotFoundError: No module named ‘notebook.nbextensions’

需要考虑可能的原因:

  1. 未正确降级notebook版本:用户可能没有成功降级到6.x版本,或者降级过程中存在依赖冲突。

  2. jupyter_contrib_nbextensions版本问题:可能用户安装的扩展包版本仍然不兼容当前的notebook版本。

  3. 环境问题:用户可能在虚拟环境中操作,或者存在多个Python环境导致安装位置不正确。

  4. 缓存问题:旧的缓存文件可能影响了新安装的包。

  5. 操作系统路径问题:Windows下的路径或权限问题可能导致安装不完整。

接下来,我需要详细分析错误日志。错误信息显示在导入notebook.nbextensions时失败,这表明notebook包的版本可能过高。Jupyter Notebook在7.0版本之后移除了nbextensions的某些模块,所以用户需要确保notebook包版本在7.0以下。

用户已经尝试了安装和升级,但可能没有成功降级。可能需要更明确的步骤,比如强制降级到6.5.x版本,并确保其他依赖包也兼容。此外,可能需要彻底卸载现有的notebook和扩展包,然后重新安装,以避免残留文件的影响。

另外,用户可能没有使用conda,而是使用pip,但conda通常能更好地处理依赖关系,所以推荐用户使用conda安装可能更有效。如果用户没有安装conda,可能需要指导他们安装Miniconda,或者继续使用pip但更严格地控制版本。

还有,用户是否在安装后正确启用了扩展?可能需要重新运行安装和启用命令,或者检查Jupyter的配置文件是否存在问题。

最后,如果所有方法都失败,可能需要考虑替代方案,比如使用jupyterlab替代传统的notebook,但用户可能希望继续使用经典界面,所以应优先解决当前问题。

总结可能的解决步骤:

  1. 确保notebook版本降级到6.5.4。

  2. 升级jupyter_contrib_nbextensions和相关依赖。

  3. 使用conda安装以处理依赖。

  4. 清理缓存和旧版本。

  5. 检查环境变量和安装路径。

  6. 手动验证notebook包的模块是否存在。

针对你遇到的 ModuleNotFoundError: No module named ‘notebook.nbextensions’ 错误,根本原因是 新版 Jupyter Notebook(≥7.0)不再兼容旧版扩展接口。以下是分步解决方案:
终极解决方案

  1. 强制降级 Jupyter Notebook 到 6.x 版本
pip uninstall notebook -y  # 先卸载新版
pip install "notebook==6.5.4"  # 安装兼容的 6.5.4 版本

在这里插入图片描述
注意:镜像源问题

清华镜像源(https://pypi.tuna.tsinghua.edu.cn/simple)可能暂时移除了 jupyter_contrib_nbextensions 包,或该包的链接已失效。
某些第三方包的旧版本可能被镜像源清理,导致无法通过 pip 直接安装。

如何永久切换python安装源为https://mirrors.aliyun.com/pypi/simple

要永久切换 Python 的安装源(pip 源)为阿里云镜像源(https://mirrors.aliyun.com/pypi/simple),可以通过以下方法配置 全局 pip 源:

方法一:通过配置文件永久设置(推荐)

步骤 1:创建或修改 pip 配置文件

根据你的操作系统,选择对应的配置文件路径:

Windows
在文件资源管理器中输入 %APPDATA% 进入用户目录,创建 pip 文件夹,并在其中新建 pip.ini 文件:
在这里插入图片描述

[global]
index-url = https://mirrors.aliyun.com/pypi/simple
trusted-host = mirrors.aliyun.com

在这里插入图片描述
Linux/macOS
在用户主目录下创建 .pip/pip.conf 文件:

mkdir -p ~/.pip
echo -e "[global]\nindex-url = https://mirrors.aliyun.com/pypi/simple\ntrusted-host = mirrors.aliyun.com" > ~/.pip/pip.conf
步骤 2:验证配置是否生效

打开终端,输入以下命令检查配置:

pip config list

输出应包含:

global.index-url='https://mirrors.aliyun.com/pypi/simple'
global.trusted-host='mirrors.aliyun.com'

方法二:通过命令行直接配置

运行以下命令自动写入配置文件(效果与方法一相同):

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com

注意事项
信任主机(trusted-host):
阿里云镜像源使用 HTTPS,但某些旧版 pip 可能需要添加 trusted-host 参数绕过证书验证。

多环境配置:

如果使用虚拟环境(如 venv 或 conda),需在虚拟环境中单独配置。

Conda 用户需额外配置 Conda 源(conda config --add channels)。

恢复默认源:
删除配置文件中的 index-url 和 trusted-host 行即可恢复默认 PyPI 源。

效果验证

安装任意包时,默认会从阿里云镜像源下载:

pip install requests  # 无需手动指定 `-i`

通过以上步骤,你已永久将 pip 源切换为阿里云镜像,后续所有包安装均会默认使用该源,无需重复输入镜像地址。

2.升级 jupyter_contrib_nbextensions 到最新版

pip install --upgrade jupyter-contrib-nbextensions jupyter_nbextensions_configurator

在这里插入图片描述
3. 重新安装并启用扩展

jupyter contrib nbextension install --user
jupyter nbextensions_configurator enable --user

在这里插入图片描述

  • 原因详解
    • 关键冲突:
      Jupyter Notebook 7.0+ 移除了 notebook.nbextensions 模块,改用 jupyter_server 的新接口,而 jupyter_contrib_nbextensions 尚未完全适配新架构。

    • 解决方案逻辑:
      通过降级 notebook 到 6.x 版本,恢复旧接口支持,确保扩展正常运行。

验证是否成功
启动 Jupyter Notebook:

jupyter notebook

彻底删除旧版 Jupyter Notebook 并重新安装最新版本及插件的完整步骤:

步骤 1:彻底卸载旧版 Jupyter 及相关组件

# 卸载核心组件
pip uninstall notebook jupyter jupyter_core jupyter_client jupyter-console -y# 卸载扩展插件
pip uninstall jupyter_contrib_nbextensions jupyter_nbextensions_configurator -y# 清理残留配置(Windows 用户请替换为 %USERPROFILE%\.jupyter)
rm -rf ~/.jupyter

window

rd /s /q %USERPROFILE%\.jupyter

步骤 2:安装最新版 Jupyter Notebook

# 安装核心包
pip install --upgrade jupyter notebook# 验证安装是否成功
jupyter notebook --version
# 应输出类似:7.3.2(具体版本号可能更高)

步骤 3:安装插件扩展

# 安装官方推荐的插件管理工具
pip install jupyter_contrib_nbextensions jupyter_nbextensions_configurator# 启用扩展功能
jupyter contrib nbextension install --user
jupyter nbextensions_configurator enable --user

版本6和版本7差别很大,需要谨慎!

相关文章:

jupyter版本所引起的扩展插件问题

文章目录 如何永久切换python安装源为https://mirrors.aliyun.com/pypi/simple方法一:通过配置文件永久设置(推荐)步骤 1:创建或修改 pip 配置文件步骤 2:验证配置是否生效 方法二:通过命令行直接配置效果验…...

01机器学习入门

机器学习入门可以分为以下几个阶段,逐步掌握核心概念和技能: 1. 基础准备 数学基础 线性代数:矩阵运算、向量空间(推荐《线性代数及其应用》)。概率与统计:概率分布、贝叶斯定理、假设检验(推…...

实现一个安全且高效的图片上传接口:使用ASP.NET Core和SHA256哈希

实现一个安全且高效的图片上传接口:使用ASP.NET Core和SHA256哈希 在现代Web应用程序中,图片上传功能是常见的需求之一。无论是用户头像、产品图片还是文档附件,确保文件上传的安全性和效率至关重要。本文将详细介绍如何使用ASP.NET Core构建…...

PyTorch中的movedim、transpose与permute

在PyTorch中,movedim、transpose 和 permute这三个操作都可以用来重新排列张量(tensor)的维度,它们功能相似却又有所不同。 movedim 🔗 torch.movedim 用途:将张量的一个或多个维度移动到新的位置。参数&…...

HTTP(1)

HTTP协议 HTTP是什么 HTTP(全称为"超文本传输协议")是一种应用非常广泛的基于TCP协议的应用层协议。 常见的应用场景: 浏览器与服务器之间的交互(访问网站)手机与服务器之间的通信多个服务器之间进行通信 …...

C#常考随笔2:函数中多次使用string的+=处理,为什么会产生大量内存垃圾(垃圾碎片),有什么好的方法可以解决?

在 C# 中,由于string类型是不可变的,当在函数中多次使用操作符来拼接字符串时,每次操作都会创建一个新的string对象,旧的对象则成为垃圾对象,这会导致大量的内存分配和垃圾回收,产生内存垃圾和碎片。 在需…...

leetcode刷题记录(一百)——121. 买卖股票的最佳时机

(一)问题描述 121. 买卖股票的最佳时机 - 力扣(LeetCode)121. 买卖股票的最佳时机 - 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并…...

MATLAB绘图时线段颜色、数据点形状与颜色等设置,介绍

MATLAB在绘图时,设置线段颜色和数据点的形状与颜色是提高图形可读性与美观性的重要手段。本文将详细介绍如何在 MATLAB 中设置这些属性。 文章目录 线段颜色设置单字母颜色表示法RGB 值表示法 数据点的形状与颜色设置设置数据点颜色和形状示例代码 运行结果小结 线段…...

CIMRTS材质美化--放大采样、缩小采样

最新的CIMRTS v1.0.10中在要素管理中的材质美化增加「放大采样」和「缩小采样」参数,对于透明树叶可以达到较好效果。 在CesiumLab中,一棵树处理完成后,在EarthSDK中,就是呈现这样缩小就会有树叶丢失的情况。效果如下&#xff1a…...

P8738 [蓝桥杯 2020 国 C] 天干地支

两种方法 #include<bits/stdc.h> using namespace std;int main(){int year;cin>>year;string tg[10] {"geng", "xin", "ren", "gui","jia", "yi", "bing", "ding", "wu&…...

PyCharm接入DeepSeek实现AI编程

目录 效果演示 创建API key 在PyCharm中下载CodeGPT插件 配置Continue DeepSeek 是一家专注于人工智能技术研发的公司&#xff0c;致力于开发高性能、低成本的 AI 模型。DeepSeek-V3 是 DeepSeek 公司推出的最新一代 AI 模型。其前身是 DeepSeek-V2.5&#xff0c;经过持续的…...

Java编程语言:辉煌的历史与未来前景

如果将软件开发世界比喻成一个宇宙&#xff0c;Java 无疑是其中最亮的星星之一。它从诞生起就改变了软件开发世界的格局。发展到今天&#xff0c;Java仍然是这个世界上最重要的编程语言之一。当然&#xff0c;它也面临着新的挑战。 Java的诞生 回溯到 1991 年&#xff0c;在 …...

麦田物语学习笔记:保存和加载场景中的物品

目录 基本流程 1.代码思路 2.代码实现 最终效果 补充知识点 1.序列化 2.委托 基本流程 现在在切换场景后,场景中的物品即使被拾取了,也还是会被重新加载出来,所以本篇文章的任务是在切换场景前后能保留当前场景的数据 1.代码思路 (1)为了保留处在地上的物品数据,就需要…...

页高速缓存与缓冲区缓存的应用差异

页高速缓存&#xff08;Page Cache&#xff09;与缓冲区缓存&#xff08;Buffer Cache&#xff09;是计算机系统中用于提高数据访问性能的两种不同类型的缓存机制&#xff0c;它们的差异主要体现在以下几个方面&#xff1a; 缓存目的 页高速缓存&#xff1a;主要用于加速对磁…...

深度学习 Pytorch 单层神经网络

神经网络是模仿人类大脑结构所构建的算法&#xff0c;在人脑里&#xff0c;我们有轴突连接神经元&#xff0c;在算法中&#xff0c;我们用圆表示神经元&#xff0c;用线表示神经元之间的连接&#xff0c;数据从神经网络的左侧输入&#xff0c;让神经元处理之后&#xff0c;从右…...

一文读懂 HTTP:Web 数据交换的基石

HTTP 概述 HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础&#xff0c;同时&#xff0c;也是一种客户端—服务器&#xff08;client-server&#xff09;协议&#xff0c;也就是说&#xff0c;请求是由接受方——通常是 Web 浏览器——发…...

算法知识补充2

一部分&#xff1a;Tire树&#xff1a;高效地存储和查找字符串集合的数据结构acwing835 #include<iostream> #include<cstring> using namespace std; const int N100010; int son[N][26],cnt[N],idx; char str[N]; void insert(char str[]){int p0;for(int i0;st…...

Vue.js组件开发-实现对视频预览

在 Vue 中实现视频文件预览 实现步骤 创建 Vue 组件&#xff1a;构建一个 Vue 组件用于处理视频文件的选择和预览。文件选择&#xff1a;添加一个文件输入框&#xff0c;允许用户选择视频文件。读取文件&#xff1a;监听文件选择事件&#xff0c;使用 FileReader API 读取所选…...

SSM开发(三) spring与mybatis整合(含完整运行demo源码)

目录 本文主要内容 一、Spring整合MyBatis的三个关键点 二、整合步骤 1、创建一个Maven项目 2、在pom.xml文件中添加jar包的依赖 3、配置MyBatis 注解实现方式 XML配置文件实现 4、配置Spring 5、测试运行 本文主要内容 1. Spring + Mybatis整合; 2. MyBatis两种SQL…...

.NET MAUI进行UDP通信(二)

上篇文章有写过一个简单的demo&#xff0c;本次对项目进行进一步的扩展&#xff0c;添加tabbar功能。 1.修改AppShell.xaml文件&#xff0c;如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…...

14-6-3C++STL的list

&#xff08;一&#xff09;list的插入 1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝&#xff0c;返回新数据的位置 #include <iostream> #include <list> using namespace std; int main() { list<int> lst; lst.push_back(10); l…...

AAAI2024论文解读|HGPROMPT Bridging Homogeneous and Heterogeneous Graphs

论文标题 HGPROMPT: Bridging Homogeneous and Heterogeneous Graphs for Few-shot Prompt Learning 跨同构异构图的小样本提示学习 论文链接 HGPROMPT: Bridging Homogeneous and Heterogeneous Graphs for Few-shot Prompt Learning论文下载 论文作者 Xingtong Yu, Yuan…...

WPA_cli P2P命令详解及使用

目录 通用命令 status scan scan_results add_network set_network enable_network reconfigure save_config quit P2P 相关命令 p2p_find p2p_peers p2p_connect [method] p2p_group_add [ssid=] [freq=] [ht40] [persistent] p2p_remove_client p2p_di…...

【竞技宝】LPL:IG3-1击败RNG

北京时间1月26日&#xff0c;英雄联盟LPL2025正在如火如荼的进行之中&#xff0c;昨日共进行两场比赛。第二场比赛由RNG对阵IG。本场比赛&#xff0c;RNG在首局前期打出完美节奏后一直压制着IG拿下比赛&#xff0c;但此后的三局&#xff0c;IG发挥出自己擅长大乱斗的能力在团战…...

sqlite3 学习笔记

文章目录 前言SQL的概念与表格相关的操作i.创建表格&#xff08;增&#xff09;ii 删除表格&#xff08;删&#xff09;iii 更改表格&#xff08;改&#xff09;iv 查询表格&#xff08;查&#xff09; 与记录相关的操作i 插入记录ii 删除记录iii 查询记录iv 修改记录 Linux中使…...

Visual Studio Community 2022(VS2022)安装方法

废话不多说直接上图&#xff1a; 直接上步骤&#xff1a; 1&#xff0c;首先可以下载安装一个Visual Studio安装器&#xff0c;叫做Visual Studio installer。这个安装文件很小&#xff0c;很快就安装完成了。 2&#xff0c;打开Visual Studio installer 小软件 3&#xff0c…...

项目集成RabbitMQ

文章目录 1.common-rabbitmq-starter1.创建common-rabbitmq-starter2.pom.xml3.自动配置1.RabbitMQAutoConfiguration.java2.spring.factories 2.测试使用1.创建common-rabbitmq-starter-demo2.目录结构3.pom.xml4.application.yml5.TestConfig.java 配置交换机和队列6.TestCon…...

3097. 或值至少为 K 的最短子数组 II

3097. 或值至少为 K 的最短子数组 II 题目链接&#xff1a;3097. 或值至少为 K 的最短子数组 II 代码如下&#xff1a; class Solution { public:int minimumSubarrayLength(vector<int>& nums, int k) {int res INT_MAX;for (int i 0;i < nums.size();i) {in…...

Linux 35.6 + JetPack v5.1.4之编译器升级

Linux 35.6 JetPack v5.1.4之编译器升级 1. 源由2. 步骤步骤一&#xff1a;添加编译器源步骤二&#xff1a;安装gcc/g 11/13步骤三&#xff1a;确认安装版本步骤四&#xff1a;配置gcc/g版本步骤五&#xff1a;使能gcc/g版本步骤六&#xff1a;查看使能链接关系步骤七&#xf…...

[MoeCTF 2022]ezhtml

题目 查看页面源代码 有个/evil.js文件打开查看 看到了flag NSSCTF{e15f7f51-d1a0-4d1b-a96d-c987a4fe69a0} 到这里也就可以直接结束了 // 获取元素节点 var sx document.querySelector(#sx); // 获取 id 为 sx 的元素节点 var yw document.querySelector(#yw); // 获取…...