2060 0

[图行天下] 在Jupyter Notebook中交互式运行C++代码 [推广有奖]

  • 0关注
  • 9粉丝

已卖:346份资源

讲师

40%

还不是VIP/贵宾

-

威望
0
论坛币
5933 个
通用积分
175.0222
学术水平
10 点
热心指数
13 点
信用等级
8 点
经验
9215 点
帖子
232
精华
0
在线时间
332 小时
注册时间
2018-9-28
最后登录
2020-7-17

楼主
诗人都在海底 在职认证  发表于 2018-11-2 11:37:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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:

  1. $ apt-get install python3 python3-pip
复制代码


然后安装 ipykernel 模块:

  1. python3 -m pip install 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 中:

  1. python3 -m ipykernel install --user
复制代码


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

添加 C++ cling 内核

克隆 cling 的 Github 官方仓库:

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

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

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

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

  1. chmod +x cpt.py  ./cpt.py --check-requirements && ./cpt.py --create-dev-env Debug --with-workdir=./cling-build/
复制代码


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

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

  1. pip3 install kernel/
复制代码


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

jupyter kernelspec install kernel/cling-cpp17

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

官方代码示例
  1. class Rectangle {      
复制代码

输出:

(double) 20.000000

Amazing!


二维码

扫码加我 拉你入群

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

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


您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-11 13:42