在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默认源是国外的站,所以访问速度可能比较慢,换成阿里的源,步骤如下:
- 备份之前的源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
- 打开源文件
sudo vim /etc/apt/sources.list
- 复制中科大源或阿里云源:
中科大源:
1 | deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse |
阿里云源:
1 | deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse |
注意:vim,i
是编辑模式,可以添加和删除内容,Esc键
命令模式(刚进入Vim就是命令模式,命令模式下才可以输入各种命令),:wq
是保存并退出。%d
删除文件中所有内容的方法:(要切换到命令模式输入)
如下所示:
4.输入如下命令更新软件包
1 | sudo apt update |
到这里Linux子系统就安装完成了
二、安装 Miniconda
在Linux命令行输入如下命令安装 Miniconda:
1 | wget https://repo.anaconda.com/miniconda/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 | conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free |
下面的步骤一定要注意(此处很重要),我就因为这里的坑浪费了一天的时间,没错,就是一天的时间
本人安装了很多次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 | pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com |
这样左侧就出现导航啦
可以再安装 Jupyter lab,比 Jupyter notebook 好看,文件管理也方便,直接安装就可以和 Jupyter notebook 一样使用:
1 | conda install -c conda-forge jupyterlab |
打开 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 | sudo apt remove npm //卸载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/node
或sudo ln -s /opt/node-v14.7.0-linux-x64/bin/node /usr/bin/node
不知道为什么,输入npm -v
均不成功
(5)设置淘宝镜像
1 | sudo npm config set registry https://registry.npm.taobao.org //设置淘宝镜像 |
【参考文档】
在 Win10 中使用 Jupyter notebook 运行 C++ 详细教程
Windows 10 安装 Linux 子系统(Windows Subsystem for Linux)
windows下使用 Jupyter notebook 运行 C++