IPython脚本中的Bash单元魔法

IPython脚本中的Bash单元魔法,bash,ipython,Bash,Ipython,这是我在SO上的第一篇文章,所以如果问题没有很好的定义,请让我知道。我有一个脚本process.ipy,在这个脚本中,我试图实现一个单元格魔术,如下所示: #!/usr/bin/env ipython %%bash ls 当我在命令行(Ubuntu和zsh shell)上运行此命令时,我得到以下错误: $ ipython process.ipy

这是我在SO上的第一篇文章,所以如果问题没有很好的定义,请让我知道。我有一个脚本process.ipy,在这个脚本中,我试图实现一个单元格魔术,如下所示:

#!/usr/bin/env ipython

%%bash
ls
当我在命令行(Ubuntu和zsh shell)上运行此命令时,我得到以下错误:

$ ipython process.ipy                                                                                                 
File "<ipython-input-1-f108be8d32f2>", line 3
  %%bash
  ^
SyntaxError: invalid syntax
更令人困惑的是,单行版本在脚本中工作

#!/usr/bin/env ipython

!ls
我做错了什么?是否设置不正确?

您不需要
#/usr/bin/env ipython
行位于顶部。 细胞魔法应该是细胞的第一行

只要尝试下面的方法,它就会起作用

%%bash
ls
你不需要这个#/usr/bin/env ipython管线位于顶部。 错误:

%%bash
ls

简短回答:只有在IPython交互会话中才能理解magic命令,而不是在脚本中


更长的回答:可以在脚本中调用它们,但只能使用库调用,而不能使用中所述的
%%
符号。请注意,该机制依赖于IPython版本。

我想我对这篇文章读得不够好。我会记住这一点。gmk的建议似乎奏效了。
%%bash
ls