【问题标题】:Confusing behavior of bash cell magics in Jupyter Notebook (Windows 10, Git Bash)Jupyter Notebook(Windows 10、Git Bash)中 bash 单元魔法的令人困惑的行为
【发布时间】: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 启动。感谢您澄清这一点!

标签: jupyter-notebook git-bash


【解决方案1】:

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

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

>>> !ls
database.sqlite
Weather Data Clustering using k-Means.ipynb

>>>!pip show lxml | grep Version
Version: 4.1.0

【讨论】:

    猜你喜欢
    • 2022-10-17
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    相关资源
    最近更新 更多