从Canopy中的交互式命名空间中运行脚本

时间:2015-01-22 16:21:52

标签: python enthought canopy

在Canopy编辑器中,如何在当前交互式命名空间中运行python脚本?

具体来说,我有一个需要很长时间才能加载的大型模型对象。我想在交互式shell中实例化模型,然后能够运行在现有模型上运行的脚本。如果我在脚本中选择文本并单击"运行所选文本"按钮,一切正常。或者,如果我键入"运行-i script.py"正如本related question中所建议的,它也可以正常工作。但是,如果我单击"运行当前文件"按钮,脚本似乎在一个干净的命名空间中运行,并且找不到交互式shell中已存在的任何变量。

这是我尝试使用的特定代码,仅在第一次通过脚本时加载模型。

# Only instantiating the model object if it does not already exist
if 'model' not in locals():
    model = TreeModel(filename)

1 个答案:

答案 0 :(得分:1)

单击"运行当前文件",然后当它无法按需运行时,按向上箭头调出运行命令,插入-i,然后按Enter重新运行在ipython的互动模式中。

理论上,Canopy可以作为另一种Run变体提供,但我们希望避免使用很少使用的选项来混乱UI。