使用python解释器运行脚本时,忽略IPython魔术的最佳方法是什么?
我经常在脚本文件中包含IPython magic,因为它与代码交互工作。例如,借助autoreload
魔术,reload
在进行一些更改并修复错误后,我不必继续使用模块:
%load_ext autoreload
%autoreload 2
但是,当我尝试使用常规的python解释器运行此脚本时,出现错误:
File "<string>", line 1
%load_ext autoreload
^
SyntaxError: invalid syntax
在if
语句中包装IPython魔术无效,因为在实际运行文件之前检测到错误的语法。
那么让python忽略IPython魔术的最佳方法是什么?
每当要在python,pdb,sphinx等中运行时都必须更改脚本,这很烦人。
对于可以从标准输入中读取的所有工具,您可以使用grep删除所有魔术线并将结果通过管道传递到python中:
grep -v '^%' magicscript.ipy | python
作为bash别名很好用:
alias pynomagic='( grep -v "^%" | python ) < '
pynomagic magicscript.ipy
像pdb这样只接受文件名的工具可以这样调用(再次进行bash):
pdb <(grep -v '^%' magicscript.ipy)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句