VS Code中Python调用另一文件定义的函数报NameError问题
故障排查与解决步骤
1. 优先排查工作目录配置问题
VS Code默认运行Python代码时,终端工作目录可能不是两个Python文件所在的文件夹,导致Python无法识别同目录下的helloworld模块。
解决操作:
- 打开VS Code设置,搜索
python.terminal.executeInFileDir,勾选该配置项,后续运行Python文件时会自动将当前文件所在目录设为工作目录。 - 临时验证可在main.py头部加入以下代码,确认当前工作目录是否正确:
import os # 输出的路径如果和两个文件存放的文件夹不一致,就属于工作目录配置问题 print(os.getcwd())
2. 检查Python解释器匹配问题
VS Code当前选中的解释器和你测试用的REPL环境解释器不一致,或存在旧的模块缓存,也会导致导入失效。
解决操作:
- 按下
Ctrl+Shift+P(Mac系统为Cmd+Shift+P)调出命令面板,搜索「Python: Select Interpreter」,选择和REPL环境一致的Python解释器版本。 - 删除文件夹下自动生成的
__pycache__缓存目录,再重新运行代码。
3. 排查同名模块冲突
如果系统或Python环境中存在其他名为helloworld的模块,会优先导入冲突的模块而非你写的文件。
验证方法:在main.py的导入语句后添加以下代码,查看实际导入的模块路径:
import helloworld # 输出的路径如果不是你编写的helloworld.py的路径,就说明存在冲突 print(helloworld.__file__)
确认冲突后,修改你写的helloworld.py文件名,或者删除冲突的同名模块即可。
内容的提问来源于stack exchange,提问作者Bean
相关产品推荐
相关产品推荐

