在Windows10中使用 Jupyter Notebook 运行C++

在Windows10中使用 Jupyter Notebook 运行C++ !

一、安装Linux子系统

(1)开启Subsystem-Linux服务

鼠标右键开始,选中Windows PowerShell(管理员)
在这里插入图片描述
输入 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 开启服务,需要重启电脑

(2)安装Linux 发行版本
鼠标右键开始,选中设置->系统->关于,查看当前Windows10版本,需要 16215 之后的版本才能安装Linux子系统,
在这里插入图片描述
打开 Microsoft Store 搜索 Linux,选中Ubuntu
在这里插入图片描述
点击获取:
在这里插入图片描述
大约432M:
在这里插入图片描述

(3)开始初始化Linux

下载完成后,点击启动,首次启动需要几分钟
在这里插入图片描述
输入账号和密码
在这里插入图片描述
你也可以右键开始,点击运行,输入 bash 运行Linux:
在这里插入图片描述
两种方法都可以进入Linux,但是进入的根目录不一样,输入 pwd 查看当前的目录
在这里插入图片描述
/homw/wxl 是Linux 系统的用户路径,/mnt/c/Users/wang1 是Linux 系统挂载的 Windows 盘符,即C盘。

(4)更新和升级发行版的软件包
Linux默认源是国外的站,所以访问速度可能比较慢,换成阿里的源,步骤如下:

  1. 备份之前的源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
  2. 打开源文件 sudo vim /etc/apt/sources.list
  3. 复制中科大源或阿里云源:

中科大源:

1
2
3
4
5
6
7
8
9
10
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

阿里云源:

1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

注意:vim,i 是编辑模式,可以添加和删除内容,Esc键 命令模式(刚进入Vim就是命令模式,命令模式下才可以输入各种命令),:wq 是保存并退出。%d 删除文件中所有内容的方法:(要切换到命令模式输入)

如下所示在这里插入图片描述

4.输入如下命令更新软件包

1
2
sudo apt update
sudo apt upgrade

到这里Linux子系统就安装完成了

二、安装 Miniconda

在Linux命令行输入如下命令安装 Miniconda:

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

也可以复制https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh到浏览器里下载,除非你能科学上网,否则这里下载特别慢,我把下载好的Miniconda3-latest-Linux-x86_64.sh上传到百度云上了,请自行提取,链接:https://pan.baidu.com/s/16US_Jt-UjYC-ox4Siql5vw 提取码:cc0b

先将下载好的Miniconda3-latest-Linux-x86_64.sh文件手动拷贝到windows C:\Users\wang1 目录下(wang1是你的用户名),执行cp /mnt/c/Users/wang1/Miniconda3-latest-Linux-x86_64.sh /homw/wxl就拷贝到了Linux 系统的用户路径下,然后执行 bash Miniconda3-latest-Linux-x86_64.sh,就可以安装了,中间需要输入两个yes,成功界面如下所示:
在这里插入图片描述
推荐用Ubuntu启动的方式安装,我用 bash 启动的方式安装失败了,然后用这种方式就成功了。

到这一步,关闭 Ubuntu 重新打开,会发现原来的用户名前面有一个(base),说明安装成功。

三、安装 Jupyter notebook

输入如下命令安装Jupyter notebook

1
pip install jupyter -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

注意:我用 conda install jupyter 安装之后不能用,我也搞不清楚为什么,大家要留意这个坑。

安装之后,输入 jupyter notebook 就可以启动notebook,如下所示:
在这里插入图片描述
复制划线的地址即可访问,可以看到,报错了,但是不影响访问,如下:
在这里插入图片描述
点击右上角new,只有python核,按Ctrl + Z或Ctrl + C关闭notebook,现在我们就安装C++内核吧。
在这里插入图片描述

四、安装C++内核

安装c++d的内核插件 xeus-cling,这里要用conda安装,pip无法安装。

先设置conda国内源

1
2
3
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes

下面的步骤一定要注意(此处很重要),我就因为这里的坑浪费了一天的时间,没错,就是一天的时间

本人安装了很多次xeus-cling都因为下载速度太慢而以失败告终,后来发现是因为安装xeus-cling时,我们想通过指定channel加快访问速度时,conda反而会优先访问默认源而非镜像。

可以通过 conda config --show 看到 默认情况下的 channel_alias 值是 https://conda.anaconda.org/ ,如下所示:
在这里插入图片描述
说明,在conda还是优先访问默认源而非镜像,输入如下命令修改默认源:

1
conda config --set channel_alias https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

可以看到,修改之后默认源就变了
在这里插入图片描述
然后输入下面命令愉快的安装c++内核插件吧,中间需要输入y确认

1
conda install -c conda-forge xeus-cling

看到这里就安装成功啦
在这里插入图片描述

五、使用notebook写C++程序

安装c内核插件后,再次输入jupyter notebook 命令,可以看到右上角多了C++11、C++14、C++17,这是不同版本的C
在这里插入图片描述
新建一个 C14 notebook,输入一些 C 代码,Shift + Enter 可以得到运行结果,没有报错就大功告成了!

在这里插入图片描述
也可以输入?cout 或 ?std::cout 查看cout函数的帮助文档,其他的一些用法可以在 xeus-cling 的文档 中查看
在这里插入图片描述

如果我们需要在某个文件夹中保存下 notebook,在要保存的文件夹下按住 shift 单击右键,选择“在此处打开 Linux shell”,这样打开的 Jupyter notebook 的目录就是该目录,新建的 notebook 也自动保存在了当前目录,而不会在 Linux 系统里。
在这里插入图片描述
Ctrl+z关闭notebook,为notebook安装左侧导航插件吧:

1
2
3
pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 
jupyter contrib nbextension install --user
jupyter nbextensions_configurator enable –user

这样左侧就出现导航啦
在这里插入图片描述

可以再安装 Jupyter lab,比 Jupyter notebook 好看,文件管理也方便,直接安装就可以和 Jupyter notebook 一样使用:

1
2
3
4
5
conda install -c conda-forge jupyterlab

安装完成后...

jupyter lab

打开 jupyter lab 界面如下:
在这里插入图片描述

到这里就都大功告成了,留下一个问题,这里为什么报错(如下所示),我还没解决,虽然不影响使用,但是作为强迫症,总想把它去掉,拜托请留言,谢谢了

在这里插入图片描述

六、Linux常用命令

在linux下,必然要经常和linux打交道,一些简单的linxu命令

1、vim 命令:
vim 文件名 用vim打开文件。vim中,i 是编辑模式,可以添加和删除内容,Esc键 命令模式(刚进入Vim就是命令模式,命令模式下才可以输入各种命令),:wq 是保存并退出。%d 删除文件中所有内容的方法:(要切换到命令模式输入)

2、删除文件:

  • rm 文件名

3、删除整个文件夹及文件夹里的文件:
rm -rf /var/log/httpd/access 将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
说明:
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

4、拷贝文件:

(1)cp -rv A B 拷贝A文件夹到B目录
(2)如果你正在B目录下,可以这样: cp -rv A ./
(3)cp -v A/A1 ./ 拷贝A文件下的A1文件

5、赋予权限
sudo chmod -R 777 文件夹
参数-R是递归的意思
777表示开放所有权限

chmod +x 某文件

如果给所有人添加可执行权限:chmod a+x 文件名;
如果给文件所有者添加可执行权限:chmod u+x 文件名;
如果给所在组添加可执行权限:chmod g+x 文件名;
如果给所在组以外的人添加可执行权限:chmod o+x 文件名;

6、cd ~ 进入用户根目录

7、查看历史命令
history

8、卸载软件
sudo apt-get remove nodejs 卸载nodejs

9、安装nodejs
参考 https://blog.csdn.net/qq_41204927/article/details/83537207
(1)去官网下载最新版nodejs https://nodejs.org/en/download/current/
(2)卸载已安装的Node和npm,这一点很重要,要不你装好了 node -v 还是原来的版本

1
2
3
4
sudo apt remove npm  //卸载npm
sudo apt remove node //卸载node

cd /usr/local/bin //进入该目录中,若有node或者npm文件,将他删除删除

(3)下载完成后通过XFtp 或者其他类似软件传到服务器上,然后解压到opt目录下
tar -xJf /mnt/c/Users/wang1/node-v14.7.0-linux-x64.tar.xz -C /opt
(4)建立链接到 /usr/local/bin/ 目录(但是我试了/usr/bin/成功)
sudo ln -s /opt/node-v8.5.0-linux-x64/bin/node /usr/local/bin/node
输入node -v成功
sudo ln -s /opt/node-v14.7.0-linux-x64/bin/node /usr/local/bin/nodesudo ln -s /opt/node-v14.7.0-linux-x64/bin/node /usr/bin/node
不知道为什么,输入npm -v均不成功
(5)设置淘宝镜像

1
2
sudo npm config set registry https://registry.npm.taobao.org   //设置淘宝镜像
source ~/.bashrc //使修改立即生效

【参考文档】
在 Win10 中使用 Jupyter notebook 运行 C++ 详细教程
Windows 10 安装 Linux 子系统(Windows Subsystem for Linux)
windows下使用 Jupyter notebook 运行 C++