在编写C++的过程中,想使用vscode,在jupyter中运行C++,经过搜索,可以通过xeus-cling实现,但xeus-cling只支持linux和mac,不支持windows系统,因此需要先安装WSL来实现功能,在此记录一下实现过程。

参考的主要资源包括如下几篇文章:

  • Windows 10 安装 Linux 子系统(Windows Subsystem for Linux)_蓝三金的博客-CSDN博客_linux subsystem

  • 在 Win10 中使用 Jupyter notebook 运行 C++ 详细教程_蓝三金的博客-CSDN博客_c++ notebook

  • 如何使用jupyter运行c++ - 百度文库 (baidu.com)

  • win10如何安装Microsoft store? - 知乎 (zhihu.com)

  • jupyter-xeus/xeus-cling: Jupyter kernel for the C++ programming language (github.com)

    这几篇文章的内容大部分是正确的,但如果完全按着来的话会遇到好几个坑,本篇文章对一些安装细节进行了修正,整个流程在我自己的电脑上是可以成功跑通的。

    下面几步参考Windows 10 安装 Linux 子系统(Windows Subsystem for Linux)_蓝三金的博客-CSDN博客_linux subsystem即可,基本没有需要更正的,有个小坑是我的win10是LSTC版本,没有Microsoft Store,需要手动安装一下。

启用WSL功能

参考即可,没有需要更正的。

  • 按下 “Windows + X”,选择 Windows PowerShell(管理员)。
  • 然后在 PowerShell 中输入以下命令:
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • 出现提示后重启计算机。

安装Linux发行版本

由于我用的Win10 LSTC版本,手动安装Microsoft Stor,参考win10如何安装Microsoft store? - 知乎 (zhihu.com)。

先去网盘下载(提取码1234),下载后将文件解压到桌面上,右键以管理员身份运行文件夹中的 Add-Store.cmd,左下角出现 Press any Key to Exit. 时,关闭窗口,重启电脑即可。

打开 Microsoft Store 搜索Ubuntu,单击 Ubuntu 后选择 获取 就会自动下载安装 Ubuntu 了。

下载完成后运行会进入命令行界面,第一次使用要设置一下用户名和密码,然后运行以下两行命令更新一下软件包。

sudo apt update
sudo apt upgrade

安装Miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

在Ubuntu终端内输入以上两行命令,无脑yes和enter就行。然后关闭终端重启,看到用户名前出现(base)提示说明安装成功。

安装Jupyter和xeus-cling

这里就不能完全参考在 Win10 中使用 Jupyter notebook 运行 C++ 详细教程_蓝三金的博客-CSDN博客_c++ notebook了,需要结合如何使用jupyter运行c++ - 百度文库 (baidu.com)来用,因为第一篇文章中安装的jupyter和xeus-cling会出现版本不兼容的情况,虽然照着来能安装成功,但是在vscode内运行的时候,会出现内核一直连接不上的情况。

先进入xeus-cling的在线试用网站,xcpp - Jupyter Notebook (gesis.org),然后新建一个cell输入 !conda list,这样我们就能获取到xeus-cling自己搭建环境用到的软件包的版本情况,主要关注一下几个包的版本:

  • jupyter_core 4.7.1 py37h89c1867_0 conda-forge
  • jupyter_client 6.1.12 pyhd8ed1ab_0 conda-forge
  • python 3.7.10 hffdb5ce_100_cpython conda-forge
  • xeus-cling 0.12.0 h560cc44_2 conda-forge

获取到这些信息后,我们就可以来配置conda环境了,我使用的命令如下,直接按顺序运行就行,里面先安装了下mamba来提高安装速度。

conda create -n cling
conda activate cling
conda install -c conda-forge mamba
mamba install python==3.7.10
mamba install jupyter_core==4.7.1
mamba install jupyter_client=6.1.12
mamba install jupyter notebook
mamba install xeus-cling==0.12.0 -c conda-forge

这样我们的linux环境就搭建好了,然后就是vscode的设置。

Vscode和jupyter设置

先在linux终端内输入jupyter notebook,这样我们就开启了一个jupyter服务器,这时候会给出提示文本告诉我们地址:

把这个地址copy下来备用。

切到Vscode界面,新建一个cpp.ipynb文件,然后点击右下角的jupyter服务器选择按钮

在弹出的窗口里选择现有的,把刚才复制的地址paste进去

这时候我们就把jupyter切换成linux里运行的了,然后点击右上角的选择内核,可以看到已经有C++11,C++14,C++17可以选择了。

先运行个hello world试一下,发现报错了,原因是在jupyter里不需要写int main了,直接去掉。

改成这样就可以运行啦。

但还有点小问题,就是这里的代码风格还是python 的,所以会标出各种错误格式提示,需要修改一下。点击cell右下角的python小字

弹出的窗口里选择cpp就可以了

现在再看,已经可以正常的按照C++的代码风格来显示颜色和字体加粗等。

到这里,我们在vscode中,使用jupyter运行c++就成功了~

WIN10中使用vscode,在jupyter中运行c++程序相关推荐

  1. 在vscode的jupyter中使用plotly绘图,图片显示不出来

    问题: 在vscode的jupyter中使用plotly绘图时,发现程序无报错,下方也留有一块显示图片的区域,但是图片就是加载不出,显示为空. 解决: 从其他博客了解到,是vscode渲染的问题,下载 ...

  2. Jupyter Nodebook添加代码提示(Vscode配置Jupyter Notebook运行.ipynb文件)

    2021.04.14 更新,增加了对Vscode代码提示消失的描述 前言 由于Jupyter Notebook调试Python代码十分方便,受到了许多Coder的欢迎,但是它存在个十分不方便的地方-- ...

  3. win11中关闭windows hello 尝试再次运行安装程序 的解决方法

    1..按 "Windows 徽标键+X",启动设备管理器.找到您的指纹(生物识别)驱动,右键卸载,重启设备.再次打开设备管理器,点击 "操作">" ...

  4. 在cmd中使用命令来编译并运行java程序,导入其他jar包,使用windows批处理文件

    一.使用cmd编译并运行java程序 今天帮朋友做一件事,他是一个不懂技术的人,说需要一个工具来做数据筛选,没有什么学识的我只想到了使用java程序来实现,于是上去就是一通abcd,玩笑归玩笑,做完了 ...

  5. 在VSCode中使用Compaq Visual Fortran编译运行Frotran程序

    本片文章主要是为了使用VSCode编译运行带QuickWin库的老版本Fortran代码. 一.准备工作 安装VSCode和Compaq Visual Fortran6.6,相关安装方法在网上找. 二 ...

  6. win10安装graph_tool,在jupyter notebook运行代码

    最近安装graph_tool走了很多弯路,特此记录一下 1.​​​​​​安装wsl2 和Ubuntu20.04 win+R 输入cmd打开powershell安装wsl2,输入: wsl --inst ...

  7. Linux中如何让进程(或正在运行的程序)到后台运行?[zz]

    我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...

  8. python运行软件-Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  9. python运行程序-Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  10. python matplotlib jupyter中绘图使用宋体

    python matplotlib jupyter中绘图使用宋体 Jupyter中使用宋体 Jupyter中使用宋体 在jupyter notebook中用matplotlib绘图会有汉字字体不显示的 ...

最新文章

  1. 刷脸背后,卷积神经网络的数学原理原来是这样的
  2. currency类型_让我们一起走进VBA基本语法的世界,先了解一下数据类型有哪些
  3. ioc spring 上机案例_通过实例解析Spring Ioc项目实现过程
  4. C++效率在此笔者不想通过反汇编来实验
  5. ubuntu 16.04 源码安装samba并且配置
  6. python如何读取tfrecord_tensorflow读取tfrecords格式文件
  7. python3虚拟环境的设置
  8. JAVA NumberFormat和DecimalFormat小结
  9. 1、STVD和STVP的使用及串口烧写程序教程
  10. 聚类分析原理及R语言实现过程
  11. java判断一个数是否为素数/质数
  12. 解决分类中样本分布不平衡问题
  13. 项目总结 :木门app(2015.4.10 —— 2015.5.8)
  14. 从头撸到脚,SpringBoot 就一篇全搞定!
  15. Python中三种表示NA的方式
  16. Flink 网络流控与反压机制
  17. 知识分享|增值电信业务经营许可证常见问题解答
  18. 乌班图20.08图形界面切换
  19. P6软件核心CPM关键路径
  20. Java和Julia谁更快_Julia和Java性能比较

热门文章

  1. 基于51单片机的RFID智能门禁系统
  2. SLAM公式引出、推导和理解 3
  3. 算法训练-审美课-巧用数组下标!!按位取反
  4. Java程序员必背英语单词70个
  5. 对循环平稳谱函数的理解
  6. InvocationHandler实现类中的invoke方法为什么会被自动执行
  7. Ubuntu 16.04安装uGet替代迅雷,并在Chrome中设置为默认下载器
  8. 最新校招备战攻略,AI知识要点+面试笔记,GitHub超2万星
  9. 软考真的没用了吗?到底要不要考?
  10. RCAR会议:我的RTFA算法里面的generate_detections.py文件