Jupyter Notebook内运行C

源起

得知在Jupyter Notebook不仅可以写python,还可以写C, C++, Java, SQL 这也太凹省了。

Jupyter kernels · jupyter/jupyter Wiki

安装jupyter-c-kernel

终端键入

sudo pip3 install jupyter-c-kernel
sudo install_c_kernel

在VS Code测试

VS Code现在版本自带插件Jupyter

直接新建一个ipynb文件试试

https://pic-1259640338.cos.ap-shanghai.myqcloud.com/img/Screen%20Shot%202022-04-30%20at%2020.52.08.png

点击右上角,把kernel改成C

Jupyter Notebook内运行C_第1张图片

新建一个Cell,运行成功

Jupyter Notebook内运行C_第2张图片

在Anaconda测试

遇到问题

原因是,之前安装jupyter-c-kernel不是在anaconda的环境下

解决方案

很简单,切换到conda环境下,重新执行那两条命令就可以了

conda activate
pip install jupyter-c-kernel
sudo install_c_kernel

Jupyter Notebook内运行C_第3张图片

成功

Jupyter Notebook内运行C_第4张图片

一个问题,input /scanf(”%d”, &n); 仍未解决

#include

int main()
{
    int n;
    scanf("%d", &n);
    printf("Hello World!");
    printf("%d", n);
    return 0;
}

测试了一下,如果使用C的scanf进行输入的话,无论在VS Code还是Anaconda,都无法正常输入

Jupyter Notebook内运行C_第5张图片

VS Code一直等待输入,卡住

Jupyter Notebook内运行C_第6张图片

上GitHub查了下ISSUE,发现也有相同问题

https://github.com/brendan-rius/jupyter-c-kernel/issues/77

https://github.com/brendan-rius/jupyter-c-kernel/issues/58

找到回复,这个问题还没有被解决

那我只好recommended use with Docker试试

https://github.com/brendan-rius/jupyter-c-kernel

docker pull brendanrius/jupyter-c-kernel
docker run -p 8888:8888 brendanrius/jupyter-c-kernel

Jupyter Notebook内运行C_第7张图片

事实证明,并不行。

SO,目前输入只能靠赋值来使用了。

你可能感兴趣的:(c,c++,python,C,python,jupyter)