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

Run script in interactive namespace from within Canopy

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

具体来说,我有一个需要很长时间才能加载的大型模型对象。我想在交互式 shell 中实例化模型,然后能够 运行 在现有模型上运行的脚本。如果我 select 脚本中的文本并单击 "Run the selected text" 按钮,一切正常。或者,如果我按照此 related question 中的建议键入 "run -i script.py",它也可以正常工作。但是,如果我单击 "Run the current file" 按钮,脚本会出现在 运行 干净的命名空间中,并且无法找到交互式 shell.

中已经存在的任何变量

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

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

点击"Run the current file",当无法运行时,按向上键调出运行命令,插入-i,回车在ipython的交互模式中重新运行。

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