【发布时间】:2017-08-09 14:44:36
【问题描述】:
在安装了 Git Bash 的 Windows 10 上尝试在 Jupyter Notebooks 中使用 bash 单元魔法时,我遇到了奇怪的行为。
单元魔法似乎适用于某些 bash 程序(例如 which、echo),但不适用于其他程序(例如 head)。
使用 !代替 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
【问题讨论】:
-
我有一个类似的问题,你有没有弄明白这个? stackoverflow.com/questions/51548928/…
-
不!没有进展。诚然,它的优先级很低,因为我们实验室的一些本科生正在经历这个问题。我们刚刚让他们改用运行 Ubuntu 的实验室计算机,而不是他们的个人 Windows 笔记本电脑。
-
我发现'!'使用默认的 windows shell 而 '%%bash' 使用 bash。因此,一种解决方法是使用 '%%cmd' 来使用所有可以与 '!' 一起使用的命令但是随后您将面临由于 bash 和批处理之间的差异而出现的问题。我也采用了使用 Ubuntu 虚拟机的方法。不知道我说的是否有帮助,但只是分享..
-
你说 Git Bash 已安装,但 Jupyter Notebook 是从 Git Bash 启动还是从另一个提示符启动,例如 Anaconda?
-
通过 Git Bash 启动。感谢您澄清这一点!