1. 程式人生 > >Python包的相對導入時出現問題解決

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

err 出現 解釋 pack orm ini value tro 條件

資料參考: 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包的相對導入時出現問題解決