安装 jupyter 主题后,笔记本和 docker 容器不再工作



我正在通过docker容器运行jupyter笔记本。我在容器中有文件、笔记本等。有一天,我在课堂上决定尝试并安装jupyterthemes软件包,因为谁不喜欢更多的颜色。我打开了一个新的ipynb,并按照这个网站的说明进行操作:https://github.com/dunovank/jupyter-themes

但基本上就是这样:

!pip install jupyterthemes
!jt -t chesterish

主题不会立即出现,说明建议重新启动笔记本或刷新浏览器。这是问题开始的地方,在尝试刷新或关闭并重新启动笔记本后,它不再起作用,仅在页面上显示一个大的"500:内部服务器错误"。尝试重新启动我的笔记本的主页(这是通过 docker 本地托管并在 chrome btw 上运行(后,chrome 中的 jupyter 窗口根本不显示任何内容。

在这里,我回到终端和码头工人并关闭容器。然后我尝试重新启动同一个容器,希望它现在可以工作。我尝试像往常一样启动它docker start -ai container_name但没有成功。它每次都显示这些错误

Executing the command: jupyter notebook
Traceback (most recent call last):
File "/opt/conda/lib/python3.6/site-packages/traitlets/traitlets.py", 
line 528, in get
value = obj._trait_values[self.name]
KeyError: 'allow_remote_access'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/conda/lib/python3.6/site- 
packages/notebook/notebookapp.py", line 869, in _default_allow_remote
addr = ipaddress.ip_address(self.ip)
File "/opt/conda/lib/python3.6/ipaddress.py", line 54, in ip_address
address)
ValueError: '' does not appear to be an IPv4 or IPv6 address
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/conda/bin/jupyter-notebook", line 11, in <module>
sys.exit(main())
File "/opt/conda/lib/python3.6/site- 
packages/jupyter_core/application.py", line 266, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/opt/conda/lib/python3.6/site- 
packages/traitlets/config/application.py", line 657, in launch_instance
app.initialize(argv)
File "<decorator-gen-7>", line 2, in initialize
File "/opt/conda/lib/python3.6/site- 
packages/traitlets/config/application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1629, in initialize
self.init_webapp()
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 1379, in init_webapp
self.jinja_environment_options,
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 158, in __init__
default_url, settings_overrides, jinja_env_options)
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 251, in init_settings
allow_remote_access=jupyter_app.allow_remote_access,
File "/opt/conda/lib/python3.6/site-packages/traitlets/traitlets.py", line 556, in __get__
return self.get(obj, cls)
File "/opt/conda/lib/python3.6/site-packages/traitlets/traitlets.py", line 535, in get
value = self._validate(obj, dynamic_default())
File "/opt/conda/lib/python3.6/site-packages/notebook/notebookapp.py", line 872, in _default_allow_remote
for info in socket.getaddrinfo(self.ip, self.port, 0, socket.SOCK_STREAM):
File "/opt/conda/lib/python3.6/socket.py", line 745, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

因此,我无法再访问整个 docker 容器以及其中的文件和笔记本。所以我有两个问题:

我可以以某种方式恢复我的 docker 容器或至少检索其中的材料吗?

为什么在主题安装过程中会发生此错误,如何在不破坏 jupyter 服务器或 docker 容器的情况下执行此操作?我构建了新的容器,并再次尝试了完全相同的结果。

有关如何从未运行的 docker 容器中获取文件的任何建议,或者关于 docker、jupyter 和主题包之间的兼容性问题以及如何解决它们,将不胜感激。目前,我可以在一个新的容器中工作并跟上功课,但将来最好从该容器中取回我的东西,并学习如何成功更改我的主题(如果需要(。

所以我对一半的问题有一个答案,我们找到了一种方法来从我损坏的、未运行的 docker 容器中复制和导出所有文件。当容器未运行时,这些文件有点"不可见",因此需要一些技巧才能找到它们的位置以及使用什么路径从终端调用它们。

我在Macbook上运行Docker,我们制作的新容器中所有文件的位置都是container:./home/jovyan/。

还在我的普通用户桌面上制作了一个名为"转储"的文件夹,用于将容器内容传输到其中。在弄乱了新的"假"容器之后,我们找到了一种从未运行的容器中提取文件的成功方法。我用了

docker cp container_name:./home/jovyan/. ./Dump

其中容器名称显然是您的容器,转储是您希望文件去的地方。/jovyan/是我能打电话给的最大的一个,把我所有的东西都从容器里拿出来,但如果你知道更多的文件夹和文件名,你可以指定更远的地方并提取特定的东西。

对于大多数有经验的程序员来说,这可能非常简单,但作为一个新手,困难的部分是找到 docker 存储我的容器文件的位置以及使用什么路径。/home/jovyan/. 在我的 Mac 上工作,但对你来说可能会有所不同。如果你有一个损坏的容器,只需制作一个新的测试容器,里面有一个可识别的文件,然后弄乱,直到你弄清楚如何把它拉出来。在测试 Jupyter 笔记本中打开一个新的终端窗口帮助我找到了 docker 标记我的路径的内容。

仍然想知道如何实际安装这些主题....不要认为它会工作Docker和Jupyter,可能已经有太多的不兼容了。

如果您仍然遇到问题,这就是为我解决的问题:

  1. 在 docker 终端中,确保使用 bash;以便提示符以 "(base(" 开头。我只是输入了bash然后提示看起来不错。
  2. conda install -c conda-forge jupyterthemes(如果您不使用蟒蛇,则为点(
  3. conda update jupyterthemes(它发现了其他软件包的一些更新,显然是必要的(
  4. jt -t monokai -f fira -fs 10 -nf ptsans -nfs 11 -N -kl -cursw 2 -cursc r -cellw 95% -T(或者另一个设置;这是从Kaggle上的Ashraf Khan复制的(。
  5. 硬刷新页面(窗口上的镶边:ctrl-F5

我认为第 3 步在这里很关键,但不确定。但是它现在可以工作了。

最新更新