簡體   English   中英

無法解決“ ValueError:嘗試相對頂級包進行相對導入”

[英]Cannot Solve “ValueError: attempted relative import beyond top-level package”

我正在運行該項目,並顯示此錯誤。 我用谷歌搜索並嘗試了一些解決方案,但似乎沒有用。

File "/home/bs-094/Dev/backend/busgroup-backend/src/bus_portal_backend/apps/inquiry/forms/inquiry_details.py", line 2, in <module>
    from ..models.inquiry import Inquiry
ValueError: attempted relative import beyond top-level package

我的文件夾結構是

busgroup-backend
 src
  bus_portal_backend
   apps
    inquiry
      models
       _init_.py
       inquiry.py
      forms
       inquiry_details.py

任何人都可以幫助我解決問題,那將是很大的幫助。 我是django的新手。 謝謝

編輯這是解決我的問題的方法 ,我必須以這種方式導入

from bus_portal_backend.apps.inquiry.models import Inquiry

另外,我正在運行調試器。 我的腳本路徑是busgroup-backend/src/manage.py ,我將其更改為/home/bs-094/Dev/backend/busgroup-backend/src/manage.py ,這使我成功運行了項目。

forms似乎不包含__init__.py文件,因此Python認為它不是一個包。 因此,嘗試從..models導入就是嘗試將其提升到當前包的根目錄之上(因為...busgroup-backend/src/bus_portal_backend/apps/inquiry/forms/inquiry_details.py實際上是一個獨立的模塊)。

相對導入僅在包中起作用。 因此,您還應該通過創建inquiry__init__.py來制作inquiryformsmodels子包。

如果您是from ..models.inquiry import Inquiry..是指

busgroup-backend
 src
  bus_portal_backend
   apps

它沒有__init__.py ,因此被python視為不打包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM