我有一个由许多自定义模块组成的源代码。
在前几行中,有一些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 (F9)’是相同的。
然而,结果却大相径庭。
Spyder中的“run(F5)”和“full selection (F9)”有什么不同吗?
发布于 2020-11-07 05:09:18
(这里的Spyder维护者)区别如下:
Run selection接受您在编辑器中选择的代码,将其粘贴到控制台中并运行it.Run file,类似于执行python myfile.py,但在此之前,它会将代码运行的目录更改为文件所在的目录。它还将在一个干净的命名空间中运行它,因此它不会受到当前在控制台中定义的变量的影响。特别是考虑到最后一个特性,您应该尽可能避免使用Run selection .。
在您的例子中,我认为问题在于Run selection不改变目录,因此无法找到test.py旁边的模块。
https://stackoverflow.com/questions/64709145
复制相似问题