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

After installing jupyter themes, notebooks and docker container no longer working

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

但基本上就是这样:

1
2
3
!pip install jupyterthemes

!jt -t chesterish

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

在这里,我回到终端和码头并关闭容器。然后我尝试重新启动相同的容器,希望它现在可以工作。我尝试按照通常的docker start -ai container_name启动它,但它不成功。它每次都会显示这些错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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,我们制作的新容器中所有文件的位置都是容器:./ home / jovyan /。

还在我的普通用户桌面上创建了一个名为"Dump"的文件夹,用于将容器内容传输到。在搞乱了新的'假'容器之后,我们找到了一种成功的方法来从一个不运行的文件中提取文件。我用了

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

容器名称显然是您的容器,转储是您希望文件的位置。 / jovyan /是我可以调用的最大的一个,并且从容器中取出了我所拥有的一切,但如果你知道更多的文件夹和文件名,你可以指定更远并提取特定的东西。

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

仍然想知道如何实际安装这些主题虽然....不认为它工作工作码头和jupyter,可能只是太多不兼容已经。