Jupyter保存文件报错sys模块无audit属性该如何处理?
Jupyter保存文件触发
sys模块无audit属性报错的解决方法 报错原文:
Unexpected error while saving file: Untitled.ipynb module 'sys' has no attribute 'audit'
核心原因
sys.audit是Python 3.8版本才新增的内置属性,你指定的代码内核为Python 3.6,但启动Jupyter服务的Python解释器为3.8+版本(比如你提到的3.9),Jupyter服务运行时调用了高版本才有的属性,触发兼容性报错。
定位步骤
- 确认Jupyter服务对应的Python版本:在你启动Jupyter的终端窗口执行
python --version和jupyter --paths,查看Jupyter的配置、运行文件路径对应的Python版本,确认是否为3.8+。 - 确认notebook内核版本:在当前报错的notebook中新建代码cell,执行以下代码,核对内核版本和路径:
import sys print("内核Python版本:", sys.version) print("内核解释器路径:", sys.executable)
如果两者版本不一致(服务为3.8+、内核为3.6),即可确认是兼容性问题。
解决方法
方案1(最稳定):在Python 3.6环境中安装兼容版本的Jupyter
激活你用于工作的Python 3.6环境,执行以下命令安装适配3.6的Jupyter版本:
pip install jupyter==6.1.6 notebook==6.4.10
安装完成后在该3.6环境下重新启动Jupyter,即可正常使用。
方案2:升级工作内核版本
如果对Python版本无强制要求,将你的工作内核升级到3.8及以上版本,和启动Jupyter服务的Python版本保持一致即可解决问题。
方案3(临时应急):动态补全缺失属性
启动Jupyter前先执行以下代码,给低版本Python的sys模块添加空的audit方法:
import sys if not hasattr(sys, "audit"): sys.audit = lambda *args, **kwargs: None
该方法仅作临时救急使用,不推荐长期依赖。
内容的提问来源于stack exchange,提问作者Евгений Варламов
相关产品推荐
相关产品推荐

