在Windows上坚持Jupyter:内核无法启动



背景:我正在尝试在这里安装cling c ++解释器。我在Windows上,Anaconda运行良好,Jupyter笔记本也可以与现有的Python内核一起工作。表面上安装过程很顺利,但是一旦我尝试在已安装的内核上打开Jupyter笔记本,就会出现内核错误。

(最后,我希望能够在Jupyter笔记本中使用c ++,所以如果有人取得了任何成功,请您分享您的经验。在这一点上,虽然xeus-cling不能像许多人所说的那样用于Windows,但这种粘附似乎是一件独立的事情(

安装:这是我所做的:

  1. 从以下位置下载二进制 cling_2019-11-28_arm64.tar.bz2(这适用于 Windows 吗?(https://root.cern.ch/download/cling/
  2. 提取并放置在"程序文件"文件夹中
  3. 按照此处的说明,将C:Program Filescling_2019-11-28_arm64bin添加到 PATH 变量
  4. 激活基础蟒蛇环境
  5. cd .../share/cling/Jupyter/kernel
  6. pip install -e .
  7. jupyter-kernelspec install --user cling-cpp11

到目前为止,每件事似乎都很好,没有警告/错误。

错误:然后我加载我的 Jupyter 笔记本并尝试运行 cpp11 内核,但它无法从长错误回溯开始,其中第一个/最后一个项目为:

Traceback (most recent call last):
File "C:ProgramDataAnaconda3libsite-packagestornadoweb.py", line 1699, in _execute
result = await result
File "C:ProgramDataAnaconda3libsite-packagestornadogen.py", line 736, in run
yielded = self.gen.throw(*exc_info)  # type: ignore
File "C:ProgramDataAnaconda3libsite-packagesnotebookservicessessionshandlers.py", line 73, in post
type=mtype))
... (omitted) ...
File "C:ProgramDataAnaconda3libsite-packagesjupyter_clientlauncher.py", line 138, in launch_kernel
proc = Popen(cmd, **kwargs)
File "C:ProgramDataAnaconda3libsubprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "C:ProgramDataAnaconda3libsubprocess.py", line 1178, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

在cmd上,以下内容:

[E 14:39:14.265 NotebookApp] Failed to run command:
['jupyter-cling-kernel', '-f', 'path\to\jupyter\runtime\kernel-..(random string here)..json', '--std=c++11']

故障排除 (1(:...似乎表明它无法找到jupyter-cling-kernel。但是我在.../Anaconda3/Scripts文件夹中确实有名为jupyter-cling-kernel的文件,并且此文件夹也在我的 PATH 变量中。打开它后,我发现它是一个只有几行的python文件。看起来它对应于上面的命令。

#!C:ProgramDataAnaconda3python.exe
# EASY-INSTALL-DEV-SCRIPT: 'clingkernel==0.0.2','jupyter-cling-kernel'
__requires__ = 'clingkernel==0.0.2'
__import__('pkg_resources').require('clingkernel==0.0.2')
__file__ = 'C:\Program Files\cling_2019-11-28_arm64\share\cling\Jupyter\kernel\scripts\jupyter-cling-kernel'
with open(__file__) as f:
exec(compile(f.read(), __file__, 'exec'))

所以然后我修改了我的 kernel.json 文件,添加了绝对 python 路径(以便它知道用 python 运行它(和 jupyter-cling-kernel 的绝对路径。(原来只是"argv:["jupyter-cling-kernel", "-f", ...

(
{
"display_name": "C++11",
"argv": [
**"C:\ProgramData\Anaconda3\python.exe",
"C:\ProgramData\Anaconda3\Scripts\jupyter-cling-kernel",**
"-f",
"{connection_file}",
"--std=c++11"
],
"language": "C++"
}

故障排除 (2(:...这确实似乎是正确的方向,至少它正在运行 sth,但现在另一个错误:

Traceback (most recent call last):
File "C:ProgramDataAnaconda3Scriptsjupyter-cling-kernel", line 7, in <modu
le>
exec(compile(f.read(), __file__, 'exec'))
File "C:Program Filescling_2019-11-28_arm64shareclingJupyterkernelscrip
tsjupyter-cling-kernel", line 3, in <module>
from clingkernel import main
File "c:program filescling_2019-11-28_arm64shareclingjupyterkernelcling
kernel.py", line 24, in <module>
from fcntl import fcntl, F_GETFL, F_SETFL
ModuleNotFoundError: No module named 'fcntl'

现在谷歌搜索这个fcntl似乎不适用于Windows。所以在这一点上,我想知道我是否下载了错误的二进制文件,或者我应该修改这个 clingkernel.py 文件,还是我需要自己做一些编译?

同样,如果你们中的任何人知道如何获得Jupyter的c ++运行(在Windows上(,请感谢是否可以分享您的经验。谢谢。

使用 Windows10 + WSL,我们可以在 Windows 上安装 xeus-cling for C++

步骤包括

  1. 在 WSL 上启用 Ubuntu
  2. 安装米尼康达
  3. 设置 Conda, Jupyter Notebook, Xeus-Cling

这个带有 cpp 环境的保鲜笔记本可以从桌面快捷方式运行。步骤 记录在 C/C++ Jupyter Notebook 上使用 xeus-cling - Windows WSL 安装程序

保鲜解释器已打包用于 conda-forge。

你可以简单地运行

conda install cling -c conda-forge

然后运行cling.但是,不幸的是,Jupyter 内核不包含在该版本中,并且 Windows 构建在我目前正在调查的 IO 操作方面存在一些问题。

也许尝试通过按两次 o(不是 0( 来重新启动内核。

最新更新