首页 > 解决方案 > Spyder 中的“RUN”和“RUN (full) selection”有什么不同?

问题描述

我有一个源代码由许多自定义模块组成。

在前几行中,有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')

我很困惑,因为我认为“运行(F5)”和“全选运行(F9)”是相同的。

然而结果却大相径庭。

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

标签: pythonspyder

解决方案


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

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

在您的情况下,我认为问题在于Run selection不会更改目录,因此 Python 无法找到您旁边的模块test.py


推荐阅读