Spyder 中的 'RUN' 和 'RUN (full) selection' 有区别吗?

Are different between 'RUN' and 'RUN (full) selection' in Spyder?

我有一个包含许多自定义模块的源代码。

在前几行中,有import个词,例如...

import custom_module_1
import custom_module_2
import custom_module_3
....

当我运行(快捷键是F9)部分或全部选择这段代码时,我发现ModuleNotFoundError: custom_module_1

但是,当我 运行(F5) 编码时,我工作得很好 runfile('C:/Users/user/Desktop/test.py', wdir='C:/Users/user/Desktop')

我很困惑,因为我认为 'run(F5)' 和 'full selection run(F9)' 是一样的。

然而结果却大不相同。

Spyder中的'run(F5)'和'full selection run(F9)'有什么区别吗?

(这里是Spyder维护者)区别如下:

  • Run selection 获取您在编辑器中选择的代码,将其粘贴到控制台并运行发送它。
  • Run file 与执行 python myfile.py 类似,但在执行此操作之前,它会更改您的代码所在的目录 运行 您的文件所在的目录。它还会 运行 它在一个干净的命名空间中,因此它不受当前在控制台中定义的变量的影响。特别是由于最后一个特性,您应该尽可能避免使用 Run selection

在你的情况下,我认为问题是 Run selection 没有改变目录,所以 Python 找不到你在 test.py.[=16 旁边的模块=]