You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python课程作业报错:无法从name_function导入get_formatted_location

解决VS Code中Python跨文件导入函数的问题

核心排查点及解决步骤

  • 确认文件存放路径:确保调用函数的主文件与name_function.py在同一个文件夹下,Python默认只会从当前工作目录和系统路径中查找导入模块。
  • 修正VS Code工作目录:
    1. 在VS Code资源管理器中,右键点击包含两个文件的文件夹,选择「设置为工作区文件夹」
    2. 运行脚本时,优先通过终端进入该文件夹,执行python 你的主文件名.py,避免因默认工作目录错误导致导入失败
  • 检查文件名冲突:排查是否存在其他同名的name_function.py文件,或是否与Python内置模块重名,防止模块被意外覆盖
  • 验证文件保存状态:确保name_function.py已保存,VS Code标签页修改后未保存时,Python读取的仍是旧文件内容(甚至空文件)

最小化测试验证

若仍不确定问题,可先通过极简代码验证导入逻辑:

  1. 确保name_function.py仅保留函数代码无语法错误
  2. 新建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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:22:10