WIN10中使用vscode,在jupyter中运行c++程序,整体搭建流程

发布于 2022-09-04  1201 次阅读


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

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

启用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++就成功了~ ​