来自其他脚本的Spyder runfile

时间:2017-05-10 14:03:06

标签: python spyder

我正在尝试在Spyder的脚本中使用runfile。 当我这样做时,我收到了这个错误:

KeyError: '__file__'

如何避免此错误?

额外信息: 我之前已将其他脚本作为模块导入并相应地运行它们,但我希望能够灵活地单独运行脚本(在脚本中指定输入参数)或从其他脚本调用它们(在调用它们时指定参数)。

提前致谢!

1 个答案:

答案 0 :(得分:0)

这是如何完成此操作的示例。我有两个由脚本控制的简短python程序。 runfile_a.pyrunfile_b.py这两个程序都包含:

if __name__ == "__main__":
    print(__file__.split("\\")[-1], __name__)

脚本包含:

# Paths edited
runfile('C:/Python/runfile_a.py', wdir='C:/Python')
runfile('C:/Python/runfile_b.py', wdir='C:/Python')

在Spyder中执行脚本的输出:

In [11]: runfile('C:/Python/runfile_tst_ab.py', wdir='C:/Python')
runfile_a.py __main__
runfile_b.py __main__

从输出中,我可以看到每个程序都在一个 具有自己的__file__的环境。

在Github上列出了Spyder中runfile()方法的代码: https://github.com/spyder-ide/spyder/blob/master/spyder/plugins/console/utils/interpreter.py