Python包的相對匯入時出現問題解決

來源:互聯網
上載者:User

標籤:解譯器   無法   http   必須   att   html   https   ror   pac   

資料參考: https://www.cnblogs.com/ArsenalfanInECNU/p/5346751.html

在python匯入包,如下:

from .units import *

經常出現錯誤:

SystemError: Parent module ‘‘ not loaded, cannot perform relative import

ValueError: attempted relative import beyond top-level package

其原因在相對匯入時,package所對應的檔案夾必須正確的被python解譯器視作package,而不是普通檔案夾。否則無法利用package之間的嵌套關係,從而無法實現python中包的相對匯入。

檔案夾被python解譯器視作package需要滿足兩個條件:

 1、檔案夾中必須有__init__.py檔案,該檔案可以為空白,但必須存在該檔案。

 2、不能作為頂層模組來執行該檔案夾中的py檔案(即不能作為主函數的入口)。

對於第一個條件問題直接建立一個空白__init__.py檔案即可,對於第二個條件問題,可以建立一個包,將需要直接執行的檔案及關聯檔案拖入包中,比如建立一個包package,拖入後,問題匯入代碼變為:

from package.units import *

這時可以正確匯入。

 

Python包的相對匯入時出現問題解決

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.