IPython Notebook %%bash Magic Error
我试图通过Fernando Perez在IPython笔记本中遵循版本控制教程,其静态版本可以在这里找到。
他广泛使用%%bash魔法,但当我使用它时,我收到以下错误:
错误:未找到单元魔术函数%%bash。
即使我使用!git命令; 一切正常。
具体细节:
1 2 3
| C:\Python27\Scripts;
C:\Program Files (x86)\Git\cmd;
C:\Program Files (x86)\Git\bin\; |
都被添加到我的系统路径中。
我在他的网站上运行了来自Christoph Gohlke的64位Windows二进制文件安装的0.13.2版本的IPython。
运行Git 1.8.0
有关:
找不到魔法函数`bash`
他的解决方案是更新他的IPython版本。 我的版本已更新。
不起作用的原因是你在Windows上运行。 Windows确实如此
没有bash而是cmd。 与此相符的是ipython没有%%bash
魔法,但%%cmd魔法。 您可以尝试将其命令重写为%%cmd,但是
请注意,cmd与bash不同,因此他的命令可能无法正常工作
对。
要在Windows上运行此笔记本,您需要安装cygwin并运行ipython
从那里。 你不需要在cygwin中安装ipython - 运行windows
ipython很好,但你必须从cygwin shell运行它。
更新:经过一些研究,我发现了什么使cygwin shell
特殊:它将bash置于其PATH中。 所以你毕竟不需要cygwin。有
git安装就够了。 只需创建名为notebook.bat的批处理文件或其他内容
以下内容:
1 2 3
| @echo off
set PATH=%PATH%;C:\Program Files\Git\bin
ipython notebook |
使用此批处理文件运行笔记本时,%%bash命令将可用并正常工作。
-
谢谢回答我的问题。我认为%% bash命令与Git Bash有关。现在我觉得很傻。就像我上面列出的那样,我可以使用'!'命令在IPython中的命令行上执行git,但是当我使用相同的表达式时,即。 '%% cmd git status'没有回应。另外我为什么要从cygwin目录中启动笔记本?那会让'%% bash'风格神奇吗?
-
运行%%cmd
git status应该有效(注意换行符!)。我也没有说过cygwin目录 - 我在谈论cygwin shell;)
-
好吧,从git shell运行ipython是不够的。但要澄清一下:如果从cygwin shell运行ipython,%%bash魔法就可以了
-
感谢cygwin shell %% bash澄清。 '%% cmd n git status'仍然适合我在哪里!git status工作正常。我在IPython笔记本中运行这些,所以当我编写%% cmd git status时,笔记本中隐含了新行。我希望使用%% cmd / %% bash语法,因为我想从Notebook处理我的所有版本控制来备份我的研究项目。随着我对git命令的使用变得更加复杂,使用'!'真的开始拖动,%% cmd魔术越来越必要了。魔术打印也与你在git中获得的相同。
-
%%cmd
git status为您输出什么?你需要在结尾处有一个换行符,所以:%%cmd
git status
-
响应与仅运行%% cmd相同。这是:'Microsoft Windows [Version 6.2.9200](c)2012 Microsoft Corporation。版权所有。 C: Users[我的用户ID]>'
-
这很奇怪 - 你可以尝试在最后添加更多的换行符^^。否则尝试运行cygwin表单。对于像这样的东西,cmd无论如何都是垃圾。
-
**更新了我的答案
-
当我在Windows PC上安装默认设置的32位git时,我似乎有更好的bash兼容性