JupyterLab
概述
JupyterLab 是智川云容器实例内置的交互式开发环境,支持 Notebook、终端、文件管理等功能。
注意
JupyterLab 默认工作目录为 /root,文件浏览器默认不显示隐藏文件。如需显示隐藏文件,或将默认打开目录改为 /,可参考下文常见问题中的说明,通过 SSH 远程连接 手动修改。
访问方式
通过控制台 → 实例列表 → 快捷工具 → JupyterLab 进入。

界面说明
JupyterLab 界面主要包含文件浏览器、编辑区和终端等功能区域。

主要功能
上传文件
点击左上角的上传按钮,选择本地文件即可上传到当前目录。

提示
JupyterLab 仅支持单文件上传。如需上传文件夹或大文件,请使用 SCP/rsync 方式。
使用 Notebook
在 Launcher 中点击 Python 3 图标创建新的 Notebook,适合交互式数据分析和模型调试。
打开终端
在 Launcher 中点击 Terminal 图标打开命令行终端。


后台运行
JupyterLab 中打开的终端或 Notebook,关闭标签页后默认仍在后台运行,不会被终止。可在左侧栏找回之前的会话。

文件管理
在文件浏览区右键点击文件,可进行重命名、删除、下载等操作。

查看日志
打开日志控制台(View → Show Log Console)可实时查看输出日志。

如未显示日志,请启用调试模式。

常见问题
Notebook 日志不更新
问题: 运行程序一段时间后,刷新网页发现日志不再更新。
解决: 打开日志控制台(View → Show Log Console)查看实时日志。
建议
长时间训练任务建议使用终端配合 守护进程 运行,并将日志重定向到文件。
JupyterLab 无法打开
- 确认实例处于「运行中」状态
- 更换为 Chrome 浏览器
- 尝试强制刷新页面(Ctrl+Shift+R / macOS:Cmd+Shift+R)
- 清除浏览器缓存后重试
- 检查系统盘空间是否充足
- 尝试重启实例
没有终端选项
问题:Launcher 中没有 Terminal 选项。
原因:浏览器兼容性问题。
解决:更换为 Chrome 浏览器,清除缓存后重试。如仍无法解决,使用 SSH 远程连接 作为替代方案。
删除文件后磁盘空间未释放
问题: 删除文件后,磁盘空间没有减少。
原因: JupyterLab 删除文件时默认将文件移入垃圾桶(.Trash 目录),而非真正删除。垃圾桶仍占用磁盘空间,需手动清理。
第一步:定位垃圾桶
不同磁盘的垃圾桶位置不同,以下是常见位置:
| 磁盘 | 垃圾桶路径(通常位置) |
|---|---|
| 系统盘 | /root/.local/share/Trash |
| 数据盘 | /root/rivermind-data/.Trash-0 |
| 文件存储 | /root/rivermind-fs/.Trash-0 |
如果上述路径不存在,可用 find 命令搜索:
# 查找所有 Trash 目录
find / -name "*Trash*" -type d 2>/dev/null
# 或在指定磁盘下查找
find /root/rivermind-data -name ".Trash*" -type d 2>/dev/null第二步:查看占用空间
# 列出目录内容(包括隐藏文件)
ls -a /root/rivermind-data/
# 查看各垃圾桶大小
du -sh /root/.local/share/Trash 2>/dev/null
du -sh /root/rivermind-data/.Trash-0 2>/dev/null
du -sh /root/rivermind-fs/.Trash-0 2>/dev/null
# 查看某个目录下所有文件大小(包括隐藏文件),按大小排序
du -sh /root/rivermind-data/.[!.]* /root/rivermind-data/* 2>/dev/null | sort -hr | head -20第三步:清理垃圾桶
# 清空系统盘垃圾桶
rm -rf /root/.local/share/Trash
# 清空数据盘垃圾桶
rm -rf /root/rivermind-data/.Trash-0
# 清空文件存储垃圾桶
rm -rf /root/rivermind-fs/.Trash-0如何避免此问题
删除文件时直接使用终端 rm 命令,文件不会进入垃圾桶,空间立即释放:
rm -rf /path/to/file命令参数说明
ls -a:列出所有文件,包括以.开头的隐藏文件(如.Trash-0)du:查看文件/目录磁盘占用大小-s:只显示汇总大小,不逐个列出子目录-h:以人类可读格式显示(如1.5G、200M)
rm:删除文件或目录-r:递归删除目录及其内容-f:强制删除,不提示确认
find:在指定路径下搜索文件或目录-name:按名称匹配(支持通配符*)-type d:只搜索目录类型
.[!.]*:匹配以.开头的隐藏文件(排除.和..)sort -hr:按大小从大到小排序head -20:只显示前 20 条结果2>/dev/null:隐藏错误信息(路径不存在时不报错)
如何显示隐藏文件
可通过 SSH 远程连接 修改。
显示隐藏文件通常需要同时满足两层配置:
- 服务端允许访问隐藏文件
- JupyterLab 文件浏览器启用隐藏文件显示
如果只改其中一层,页面上可能仍然看不到隐藏文件。
PY=/venv/bin/python
[ -x "$PY" ] || PY="$(command -v python3 || command -v python)"
"$PY" - <<'PY'
from pathlib import Path
import json
import re
cfg = Path('/root/.jupyter/jupyter_server_config.py')
cfg.parent.mkdir(parents=True, exist_ok=True)
text = cfg.read_text() if cfg.exists() else ''
if 'c = get_config()' not in text:
text = ('c = get_config()\n' + text.lstrip('\n')) if text.strip() else 'c = get_config()\n'
line = 'c.ContentsManager.allow_hidden = True'
pat = r'(?m)^\s*c\.ContentsManager\.allow_hidden\s*=.*$'
text = re.sub(pat, line, text) if re.search(pat, text) else text + ('' if text.endswith('\n') else '\n') + line + '\n'
cfg.write_text(text)
settings = Path('/root/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/browser.jupyterlab-settings')
settings.parent.mkdir(parents=True, exist_ok=True)
data = {}
if settings.exists() and settings.read_text().strip():
data = json.loads(settings.read_text())
data['showHiddenFiles'] = True
settings.write_text(json.dumps(data, ensure_ascii=False, indent=2) + '\n')
PY执行完成后,请重启一次实例,再重新进入 JupyterLab。
如何修改默认启动目录为 /
可通过 SSH 远程连接 修改。以下命令会先把 /tmp/init.sh 里的 --notebook-dir 改成 /,再从原脚本中读取 JupyterLab 启动命令重新拉起服务,避免手工维护整串启动参数。
谨慎操作
将默认目录改为 / 后,文件浏览器会显示系统目录和隐藏文件。请勿随意修改或删除 /bin、/etc、/usr、/root/.ssh 等路径下的内容。
tmp=$(mktemp)
sed -E 's#--notebook-dir=[^[:space:]]+#--notebook-dir=/#' /tmp/init.sh > "$tmp"
cat "$tmp" > /tmp/init.sh
rm -f "$tmp"
nohup sh -c '
pkill -x jupyter-lab >/dev/null 2>&1 || true
sleep 1
. /etc/profile >/dev/null 2>&1 || true
cmd=$(sed -n "/jupyter-lab \\\\/,/ServerApp.authenticate_prometheus=False/p" /tmp/init.sh)
eval "$cmd"
' >/tmp/jupyter-manual.log 2>&1 </dev/null &
echo scheduled执行完成后,等待几秒再检查:
grep -a 'Serving notebooks from local directory: /' /tmp/jupyter-manual.log如果仍未生效,请重启一次实例后再重新进入 JupyterLab。实例重启后如恢复默认值,可再执行一次上述命令。
