这是我关于 SO 的第一篇文章,所以如果问题没有明确定义,请告诉我。我有一个脚本process.ipy,其中我试图实现一个单元魔法,如下所示,
#!/usr/bin/env ipython
%%bash
ls
Run Code Online (Sandbox Code Playgroud)
当我在命令行(Ubuntu 和 zsh shell)上运行此命令时,出现以下错误,
$ ipython process.ipy
File "<ipython-input-1-f108be8d32f2>", line 3
%%bash
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
但是,我可以在 ipython 会话中运行它,没有问题,
In [1]: %%bash
...: ls
...:
process.ipy
Run Code Online (Sandbox Code Playgroud)
更令人困惑的是,单行版本在脚本中工作,
#!/usr/bin/env ipython
!ls
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?是不是设置不正确?
简短回答:魔术命令只能在 IPython 交互式会话中被理解,而不能在脚本中被理解。
更长的答案:它们可以在脚本中调用,但只能使用库调用,而不是如何从脚本运行 IPython 魔法(或对 Python 脚本计时)%%中描述的符号。请注意,该机制取决于 IPython 版本。
| 归档时间: |
|
| 查看次数: |
7590 次 |
| 最近记录: |