执行Jupyter命令'kernelspec'时出错

时间:2018-05-23 09:15:10

标签: python python-3.x anaconda jupyter-notebook jupyter

我正在使用Jupyter和Anaconda3。

我的Anaconda3\Anaconda3\Scripts\个文件夹已添加到%PATH%变量中。

虽然jupyter.exe位于上面的Scripts文件夹中,但Jupyter相关命令在没有破折号的情况下无效。

  • 例如:

    jupyter kernelspec --version
    Error executing Jupyter command 'kernelspec': [Errno 'jupyter-kernelspec' not found] 2
    
  • 带破折号的相同命令有效:

    jupyter-kernelspec --version
    5.2.2
    

同样适用于jupyter-notebook等。

我是否必须向%PATH%添加任何其他内容?我错过了什么吗?

PS:这可能与下面的问题相同,但目前尚不清楚。我在评论中询问是否确实是这种情况:

Jupyter notebook command returns Error executing Jupyter command 'notebook': [Errno 2] No such file or directory

2 个答案:

答案 0 :(得分:4)

好吧,我弄清楚出了什么问题。在某些Windows版本中,shutil使用which('jupyter-kernelspec')模块会返回None,因为缺少.exe,尽管PATHEXT环境变量同时包含{{1} }和.exe

(这似乎与此相关:shutil.which() not finding programs without appending file extension,尽管我不相信,因为使用.EXE的{​​{1}}对我来说很好...)

因此,必须这样将which(jupyter-kernelespec.EXE)添加到shutil的参数中:

.exe

由于大多数Jupyter内核安装程序都使用这种命令,因此您将无法始终进行调试并检查需要在何处添加它。 该修补程序包括添加以下内容:

jupyter

在此行之前: https://github.com/jupyter/jupyter_core/blob/f1e18b8a52cd526c0cd1402b6041778dd60f20dc/jupyter_core/command.py#L102

我将尝试与jupyter kernelspec.exe list 个模块人员提出这一点。

我也更新了github问题并关闭了它。 https://github.com/jupyter/jupyter/issues/381

答案 1 :(得分:0)

您的PATHEXT环境变量末尾有分号吗?如果是这样,则可能与您在答案中提到的类似问题中描述的问题相同:shutil.which() not finding programs without appending file extension

PATHEXT中删除任何结尾的分号,然后重试。