全部版块 我的主页
论坛 休闲区 十二区 休闲灌水
2061 0
2018-11-02

Jupyter Notebook 支持非常多的编程语言,而且可以直接运行这些语言的代码。要让 Jupyter Notebook 能够运行特定语言的代码,需要添加对应的内核。具体支持的语言及内核可以查看该链接:https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

今天要讲的,是支持在交互模式下执行 C++ 代码的 cling 内核。看到官方的示例,我着实感到惊讶,C++代码也能够像 Python 那样边写边运行?关于其内部的机理我还未深入探究,但最重要的是赶紧装上 cling 内核,体验一下交互式执行 C++ 代码的快感。

在经过两天的折腾之后,终于将 C++ 的 cling 内核装上了。由于我是在 Linux 机器上安装该内核,主要问题还是编译过程繁琐。尝试了很多方法,包括下载源代码、手动执行各个编译过程,结果因种种问题而失败,不过也从中学到了不少东西。最后克隆了官方的 Github 仓库,使用其提供的 CPT 工具直接完成编译,一步到位,非常简单。

由于 cling 内核依赖于 Python3,因此如果你的机器上安装的是 Python2 的话,必须先安装 Python3。安装 Python3 后,可以顺便将其添加到 Jupyter Notebook 内核中,便于以后使用。

添加 Python3 内核

安装 Python3:

复制代码


然后安装 ipykernel 模块:

复制代码


该过程耗时较长,成功后将出现以下提示:

Successfully installed ipykernel ipython traitlets jupyter-client tornado setuptools pexpect simplegeneric prompt-toolkit typing pickleshare pygments jedi decorator ipython-genutils python-dateutil jupyter-core pyzmq backports-abc ptyprocess wcwidth

最后,将 Python 3 内核安装到 Jupyter Notebook 中:

复制代码


OK,此时打开 Jupyter Notebook,你将会发现已经多了一个 Python3 内核了。

添加 C++ cling 内核

克隆 cling 的 Github 官方仓库:

git clone https://github.com/root-project/cling.git

在进行编译操作之前,首先要确保你的机器上已经装好了 cmake 工具,即能够直接通过输入命令 cmake
执行程序。

如果 cmake
已经正确安装,就可以进行以下的操作了。

切换到 cling/tools/packaging/ 目录下,执行以下两条命令:

复制代码


这个过程包含了从网络上获取源文件以及编译,是最为耗时的一个阶段,以小时计。

编译完成后,需要在 python3 中安装 clingkernel。切换到 cling/tools/Jupyter/ 目录下,执行

复制代码


最后一步,往 Jupyter Notebook 中添加 cling 内核,可以根据自己的需要安装特定 C++ 规范的 cling 内核,例如 cling-cpp11, cling-cpp14, cling-cpp17。

jupyter kernelspec install kernel/cling-cpp17

如果没有其他问题,此时就可以打开 Jupyter Notebook 感受不一样的 C++ 编程了!

官方代码示例
复制代码

输出:

(double) 20.000000

Amazing!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群