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

VS中出现“attempted relative import with no known parent package”错误如何解决?

解决Python相对导入报错:ImportError: attempted relative import with no known parent package

问题原因

你直接用Python解释器运行单个urls.py文件时,这个文件会被当作独立的顶层脚本,而非某个包的子模块。此时代码里的相对导入from . import views(.代表当前包)找不到对应的父包上下文,所以触发报错。

可行解决方案

  • 方案1:以模块方式从父目录运行
    切换到项目根目录C:\storefront,用-m参数以模块形式运行playground.urls,命令如下:

    PS C:\storefront> & C:/Users/ANJALY/.virtualenvs/storefront-qOrq4PPp/Scripts/python.exe -m playground.urls
    

    这种方式会让Python把playground识别为一个包,相对导入就能正常找到views模块。

  • 方案2:替换相对导入为绝对导入
    修改urls.py里的导入语句,把相对导入改成基于包名的绝对导入:

    # 原代码
    from . import views
    # 修改后
    from playground import views
    

    如果运行时还是找不到playground包,可在urls.py开头添加代码,手动把项目根目录加入Python的搜索路径:

    import sys
    import os
    # 获取当前文件的父目录的父目录(即storefront目录)
    sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    
  • 方案3:确保playground是合法Python包
    检查playground目录下是否存在__init__.py文件(可以是空文件),如果没有就创建一个。这个文件是Python识别目录为包的标志,配合方案1使用效果更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:52:34