Python课程作业报错:无法从name_function导入get_formatted_location
解决VS Code中Python跨文件导入函数的问题
核心排查点及解决步骤
- 确认文件存放路径:确保调用函数的主文件与
name_function.py在同一个文件夹下,Python默认只会从当前工作目录和系统路径中查找导入模块。 - 修正VS Code工作目录:
- 在VS Code资源管理器中,右键点击包含两个文件的文件夹,选择「设置为工作区文件夹」
- 运行脚本时,优先通过终端进入该文件夹,执行
python 你的主文件名.py,避免因默认工作目录错误导致导入失败
- 检查文件名冲突:排查是否存在其他同名的
name_function.py文件,或是否与Python内置模块重名,防止模块被意外覆盖 - 验证文件保存状态:确保
name_function.py已保存,VS Code标签页修改后未保存时,Python读取的仍是旧文件内容(甚至空文件)
最小化测试验证
若仍不确定问题,可先通过极简代码验证导入逻辑:
- 确保
name_function.py仅保留函数代码无语法错误 - 新建
test_import.py,写入以下代码:
from name_function import get_formatted_location print(get_formatted_location("beijing", "china"))
运行该测试文件,若能正常输出,说明原主文件可能存在逻辑问题(比如循环退出后变量未定义)
主代码逻辑优化(额外提示)
你的主代码存在变量未定义风险:若用户输入q退出城市输入,country变量会未初始化,导致后续调用函数报错。可调整为:
from name_function import get_formatted_location print("Say 'q' at any time to quit.") while True: city = input("\nPlease Give me your city name: ") if city == 'q': break country = input("\nPlease give me your country name: ") if country == 'q': break # 将函数调用与打印放入循环内,避免退出后变量无效 formatted_location = get_formatted_location(city, country) print("\tFormatted location: " + formatted_location + '.')
内容的提问来源于stack exchange,提问作者Ivan Loban
相关产品推荐
相关产品推荐

