Ubuntu 22.04系统无法运行Jupyter Notebook的问题求助
解决Jupyter Notebook启动时的sqlite3相关错误
在Ubuntu 22.04系统、Python 3.10(Anaconda环境)下启动Jupyter Notebook时出现以下错误:
Traceback (most recent call last): File "/home/anaconda3/lib/python3.10/site-packages/notebook/services/sessions/sessionmanager.py", line 9, in <module> import sqlite3 File "/home/anaconda3/lib/python3.10/sqlite3/__init__.py", line 57, in <module> from sqlite3.dbapi2 import * File "/home/anaconda3/lib/python3.10/sqlite3/dbapi2.py", line 27, in <module> from _sqlite3 import * ImportError: /home/anaconda3/lib/python3.10/lib-dynload/_sqlite3.cpython-310-x86_64-linux-gnu.so: undefined symbol: sqlite3_trace_v2 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/anaconda3/bin/jupyter-notebook", line 5, in <module> from notebook.notebookapp import main File "/home/anaconda3/lib/python3.10/site-packages/notebook/notebookapp.py", line 83, in <module> from .services.sessions.sessionmanager import SessionManager File "/home/anaconda3/lib/python3.10/site-packages/notebook/services/sessions/sessionmanager.py", line 12, in <module> from pysqlite2 import dbapi2 as sqlite3 ModuleNotFoundError: No module named 'pysqlite2'
检查发现sqlite3已存在于/home/anaconda3/lib/python3.10/sqlite3/路径下且包含dbapi2.py,尝试执行pip install pysqlite2时出现错误:
ERROR: Could not find a version that satisfies the requirement pysqlite2 (from versions: none) ERROR: No matching distribution found for pysqlite2
问题原因
该错误源于Anaconda环境中的sqlite3动态链接库依赖缺失,或系统sqlite3版本与Anaconda编译的Python不兼容。无需调整文件夹结构,当前文件夹位置是正常的。
解决步骤
1. 更新Anaconda并重装sqlite3
先激活你的Anaconda环境(base环境可跳过激活):
conda activate base
执行更新与重装命令:
conda update conda conda install -c anaconda sqlite
2. 强制重装Python与sqlite3绑定组件
若第一步无效,尝试重新安装Python的sqlite3关联组件:
conda install python=3.10 sqlite --force-reinstall
3. 替换Anaconda的sqlite3库(可选,谨慎操作)
如果上述方法都无效,可让Anaconda使用系统的sqlite3库:
# 备份Anaconda原有sqlite3库 mv /home/anaconda3/lib/libsqlite3.so.0 /home/anaconda3/lib/libsqlite3.so.0.bak # 创建软链接指向系统sqlite3库 ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /home/anaconda3/lib/libsqlite3.so.0
4. 关于pysqlite2的说明
pysqlite2是旧版sqlite3的Python绑定,如今Python标准库已内置sqlite3,无需单独安装。错误中出现的pysqlite2是Jupyter的降级尝试,解决核心的sqlite3依赖问题后,该错误会自动消失。
内容的提问来源于stack exchange,提问作者HungryMolecule
相关产品推荐
相关产品推荐

