VS Code交互窗口traitlets警告与权限拒绝问题求助
解决Termux Proot Arch Linux下VS Code Jupyter内核崩溃问题
针对你遇到的traitlets FutureWarning伴随Permission denied(src/ip_resolver.cpp:542)导致内核崩溃的问题,以下是针对性的排查和解决步骤:
1. 排查Proot网络权限与端口占用
- 检查Jupyter默认端口(8888)是否被占用:
若有进程占用,执行lsof -i :8888kill -9 <PID>终止对应进程。 - 修改VS Code的Jupyter端口配置:打开设置,搜索
Jupyter: Server Port,将值改为8890等未占用端口。 - 运行Proot时添加网络权限参数(适配部分Proot版本):
proot --link2symlink --net-host -0 ~/arch-root/bin/bash
2. 屏蔽traitlets的FutureWarning(规避崩溃触发点)
在Jupyter交互窗口开头添加代码过滤警告:
import warnings warnings.filterwarnings("ignore", category=FutureWarning, module="traitlets")
或通过配置文件全局生效:
- 生成Jupyter配置文件:
jupyter notebook --generate-config - 在
~/.jupyter/jupyter_notebook_config.py末尾添加上述警告过滤代码。
3. 调整VS Code扩展配置
- 关闭远程内核功能:打开设置,搜索
Jupyter: Enable Remote Kernel,取消勾选。 - 确保终端执行目录正确:搜索
Python: Terminal Execute In File Dir,设置为true。
4. 重置VS Code扩展缓存
关闭VS Code后,清理扩展缓存目录:
rm -rf ~/.vscode-server/Cache ~/.vscode-server/CachedData
重新启动VS Code并重新安装Python、Jupyter扩展(避免使用sudo执行安装)。
5. 修复文件系统权限
确保Jupyter相关目录归属当前用户:
chown -R $USER:$USER ~/.local/share/jupyter ~/.cache/jupyter
检查Proot根目录挂载权限,确保无读写限制。
6. 对齐traitlets版本(排除隐性版本差异)
重新安装与正常系统完全相同的traitlets版本:
pip uninstall -y traitlets pip install traitlets==<正常系统的traitlets版本号>
内容的提问来源于stack exchange,提问作者Jack Li
相关产品推荐
相关产品推荐

