python - 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)'有什么不同吗?
解决方案
(这里是 Spyder 维护者)区别如下:
Run selection
获取您在编辑器中选择的代码,将其粘贴到控制台并运行它。Run file
类似于 executionpython myfile.py
,但在此之前,它将运行代码的目录更改为放置文件的目录。它还将在干净的命名空间中运行它,因此它不受控制台中当前定义的变量的影响。特别是由于最后一个功能,您应该尽可能避免使用Run selection
。
在您的情况下,我认为问题在于Run selection
不会更改目录,因此 Python 无法找到您旁边的模块test.py
。
推荐阅读
- python - 如何为 pickle 向后兼容编写测试用例
- video - ffmpeg:记录/捕获流并同时进行场景检测
- java - 转换数组列表
- javascript - 有没有办法使用“Ajax AutoComplete for jQuery”自定义搜索?
- r - 如何从数据框中包含字母数字值的列中删除除某些单词之外的所有单词?
- go - Golang 时间格式化为特定时间戳
- discord.js - 我需要将@添加到命令中的角色
- javascript - 通过querySelectorAll访问for循环中的项目
- html - 如何将响应式图像与签名 URL 结合起来
- java - 使用 DocumentBuilder 从 xml 文件中提取值