Jupyter Notebook(Windows 10,Git Bash)中bash细胞魔法的混淆行为



在安装了Git Bash的Windows 10上尝试在Jupyter Notebooks中使用bash细胞魔法时,我遇到了奇怪的行为。

细胞魔法似乎适用于某些bash程序(例如,回声(,但不适用于其他程序(例如头部(。

使用!代替bash细胞魔法适用于某些命令,但不适用于其他命令。这种不一致会扼杀不同操作系统之间的笔记本兼容性。

有人对这里发生的事情有任何见解吗?

以下是一些示例:

输入:

%%bash
which bash

输出:

/bin/bash

输入:

!which bash

输出:

'which' is not recognized as an internal or external command, operable program or batch file.

输入:

%%bash
head file.csv

输出:

输入:

!head file.csv

输出:

Row,Column,*Target Name,*Sample Name

输入:

%%bash
echo pizza

输出:

pizza

输入:

!echo pizza

输出:

pizza

根据我的经验,只要Jupyter是从符合bash的命令行启动的,例如Git Bash(MingW64(或Windows上的Ubuntu,bash命令就可以在Jupyter Notebook中工作!,即使在Windows系统上也是如此。

我正在运行通过Anaconda安装Python的Windows 10 Pro,当我通过Git Bash启动Jupyter时,bash可以工作,但当我从Anaconda提示符启动时则不起作用。例如:

>>> !ls
database.sqlite
Weather Data Clustering using k-Means.ipynb
>>>!pip show lxml | grep Version
Version: 4.1.0

最新更新