我已经通过Conda安装了Jupyter Notebook。已经使用它一个月了,没有任何问题。突然今天Jupyter内核开始崩溃,它无法重新启动。需要注意的一点。这打开没有任何问题:http://localhost:8888/tree但是一旦我打开任何笔记本(. ipynb文件),崩溃就会开始发生
(gpd)[arnuld@arch64geo]$jupyter-笔记本
[I 13:01:24.389 NotebookApp]从本地目录提供笔记本:
/mnt/sda5/knuth/geo[I 13:01:24.389 NotebookApp]Jupyter Notebook运行于:
[I 13:01:24.390 NotebookApp]http://localhost:8888/?token=d9ad51c90febcccc0b53d575c934396c4b28a65f307ef587
[I 13:01:24.390 NotebookApp]使用Control-C停止此服务器并关闭所有内核(两次跳过确认)。
[C 13:01:24.457 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time, to login with a token:
http://localhost:8888/?token=d9ad51c90febcccc0b53d575c934396c4b28a65f307ef587
[I 13:01:24.832 NotebookApp]接受来自::1的一次性令牌验证连接
[I 13:01:51.437 NotebookApp]内核启动:a04e2381-690f-410f-a07b-ede5f843b462
Traceback(最近一次调用最后一次):
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/runpy.py",第193行,_run_module_as_main"main",mod_spec)
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/runpy.py",第85行,_run_codeexec(code,run_globals)
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/ipykernel_launcher.py",第15行,从ipy内核导入kernelapp作为应用程序
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/ipycore/init.py",第2行,来自.connect import*
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-不包/ipycore/connect.py",第13行,在IPython.core.profile ilider导入ProfileDir
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/IPython/init.py",第55行,在from.end.embed import embed
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/IPython/终端/embed.py",第17行,来自IPython.终端.ipapp导入load_default_config
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/IPython/终端/ipapp.py",第28行,来自IPython.core.magics import(
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/IPython/core/magics/init.py",第18行,in from.code import CodeMagics,MacroToEdit
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/IPython/core/magics/code.py",第23行,来自urllib.request导入urlopen
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/urllib/request.py",第86行,导入电子邮件
文件"/mnt/sda5/knuth/geo/email.py",第1行,以pd格式导入熊猫
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/熊猫/init.py",第23行,in from pandas.compat.numpy import*
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/site-包/熊猫/compat/init.py",第63行,导入http.client作为httplib
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/超文本传输协议/client.py",第71行,导入email.parser
ModuleNotFoundError:没有名为“email. parser”的模块;“电子邮件”不是一个包
[I 13:07:48.306 NotebookApp]KernelRestarter:重新启动内核(1/5),新的随机端口
Traceback(最近一次调用最后一次):
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/runpy.py",第193行,_run_module_as_main"main",mod_spec)
……狙击……
文件"/mnt/sda5/. minicon da3/envs/gpd/lib/python3.7/超文本传输协议/client.py",第71行,导入email.parser
ModuleNotFoundError:没有名为“email. parser”的模块;“电子邮件”不是一个包
[W 13:08:00.373 NotebookApp]KernelRestarter:重启失败
[W 13:08:00.374 NotebookApp]内核182b657e-54af-420d-bcdb-910da9391f37死亡,从地图中删除。
[W13:08:45.530 NotebookApp]等待kernel_info回复超时182b657e-54af-420d-bcdb-910da9391f37
[E 13:08:45.533 NotebookApp]错误打开流:HTTP404:未找到(内核不存在:182b657e-54af-420d-bcdb-910da9391f37)
这条线告诉了问题。
在我当前的工作目录中有一个名为“email.py”的文件,其中包含我的一些代码。由于Jupyter Notebok从同一个目录运行,它认为它来自电子邮件解析器包,并开始寻找它只在标准包中寻找的东西。
两个教训:
>
在Python中,当前工作目录具有最高优先级,甚至高于标准安装位置。
切勿将文件的通用名称保存在运行Jupyter Notebook的目录中Python否则它们将与标准包冲突。
感谢Min RK在gitter通道上解决了这个问题。