0

Jupyter Lab 应用程序具有漂亮的终端和浏览器内终端外壳,支持颜色、导航键和终端应用程序的几乎所有标准功能。在这个问题中,我的意思是/lab应用程序,而不是经典的 Notebook ( /tree) 应用程序。

如果我使用这个Docker 映像启动 Jupyter 服务器,它会很好用。我需要建立自己的形象,最好不要以此为基础。我只是按照记录来做:

docker run -it --rm -p 8888:8888 -v "$PWD":/jupyter python:3.8 bash
# pip install jupyterlab
# jupyter lab --config=/jupyter/jupyter_notebook_config.py

以上假设我jupyter_notebook_config.py在当前目录中有一个:

c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 8888
c.NotebookApp.password = 'sha1:<salt>:<hash>'
c.NotebookApp.allow_password_change = False
c.NotebookApp.allow_root = True
c.NotebookApp.open_browser = False

一切正常,但终端性能很差,它不支持颜色和发送代码(如^[[A, ^[[B)而不是箭头键。对Dockerfile的逐行调查并不是那么令人兴奋的努力,可能有人可以指出我所缺少的东西吗?

编辑:我对颜色有点错误(被jupyter/base-notebook图像中的默认绿色提示混淆)和整体问题描述。根本原因是在我的镜像中启动的 shellsh在官方镜像中是bash. 但尽管如此,终端并没有完全发挥作用,例如,如果我启动 nano,它只会在 80x25 字符区域开始,并且不会延伸到终端的实际大小)。箭头虽然在纳米中工作。

4

1 回答 1

0

所以我想出了原因。显然,终端 Web 应用程序只是复制了运行 Jupyter 的用户的默认 shell 的行为。在这张图片中,他们在 .bashrc 模板中启用了着色,然后创建了一个新用户,为他指定了一个 shell(第5259行)。

编辑:SHELL=/bin/bash必须在环境中设置。

于 2020-05-02T04:56:17.117 回答