IPython模块

sha*_*eel 4 python module ipython

我有一些具有冗余功能的IPython脚本.我想将通用功能重构为一个模块,并将这些模块包含在现有脚本中.问题是它不能成为python模块,因为代码使用Ipython的语言扩展(!,$ etc).是否可以使模块具有IPython代码并将其包含在另一个IPython脚本中?

S.L*_*ott 7

你不应该保存IPython的扩展的东西(?,!,%run在文件中).永远.这些是交互式工具,它们是您用手键入的东西,但从不保存到文件中.

  1. 查找文件中的常用功能.你有四种适合这种情况的东西.

    • 进口(import)

    • 函数定义(def)

    • 类定义(class)

    • 全局变量赋值

    您必须从此代码中删除所有IPython交互功能.所有的.

  2. 重写你的脚本,以便他们(1)导入你的常见内容,(2)做他们应该做的有用的工作.

    您必须从此代码中删除所有IPython交互功能.所有的.

    现在你可以运行你的脚本,他们就像正确的Python脚本那样做他们的工作.

您仍然可以使用IPython的扩展功能,如!,?%run当你打字,但不应将这些保存到文件中.

  • @sharjeel:仔细查看子进程模块.你可以替换"!" 使用适当的subprocess.Popen()函数调用.这将允许您创建没有扩展名的模块. (2认同)
  • IPython语法根本不适用于交互式使用.你为什么要扩展.ipy?如果您愿意,可以在脚本中使用IPython语法. (2认同)