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

Udacity人工智能交易仓库Python特殊import模式报错解决方案咨询

特殊导入模式原理

你看到的内容仅为../../../tests.py的tests.py不是普通Python脚本,而是Unix风格软链接(符号链接)。这是教程类仓库常用的代码复用方案:所有子目录的测试代码不需要重复复制根目录的公用测试工具,只需要创建软链接指向根目录的tests.py,Python导入时会自动读取根目录文件的内容,拿到project_test等函数定义。
报错的核心原因:

  • Windows系统默认不支持这类软链接格式
  • 克隆仓库时没有开启git的符号链接支持,导致git将软链接识别为普通文本文件,仅保存了指向的路径字符串,Python导入时无法解析到根目录的真实代码,自然找不到对应的导入对象。
解决方案

以下三种方案任选一种即可:

  • 方案1:修复软链接配置(最贴合原仓库设计)
    1. Windows用户先开启系统「开发者模式」
    2. 执行git clone命令拉取仓库时加上-c core.symlinks=true参数即可。
      拉取完成后子目录的tests.py会被识别为正常软链接,导入逻辑即可正常运行。
  • 方案2:手动修改子目录测试文件(无需重新拉取仓库)
    把quiz/m1/L2目录下的tests.py内容替换为以下代码:
    import sys
    import os
    # 将项目根目录加入Python模块搜索路径
    sys.path.append(os.path.abspath(os.path.join(__file__, '../../../')))
    # 导入根目录tests.py的所有公开对象
    from tests import *
    
    另外检查quiz_tests.py的导入语句,如果存在from tests1 import ...属于笔误,修改为from tests import ...即可。
  • 方案3:直接在Notebook中调整搜索路径(不需要修改任何本地文件)
    在Notebook的第一个Cell执行以下代码:
    import sys
    import os
    # 提前将根目录加入搜索路径,直接使用根目录的测试工具
    sys.path.append(os.path.abspath('../../../'))
    from tests import project_test, generate_random_tickers, generate_random_dates, assert_output
    
    后续你可以直接在Notebook中使用这些测试工具,不需要导入quiz_tests也可以运行测试逻辑。

内容的提问来源于stack exchange,提问作者semyd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:24:03