ImportError: attempted relative import with no known parent package究極解決方案

值此七夕佳節之際,給自己鬥爭了許久的bug做一個了斷,話不多說,看操作:

  1. 導入需要區分工作目錄

    • 首先可以通過os.getcwd查看當前工作的目錄是哪裏,通常在python框架開發時,發現,在項目目錄外層嵌套一個工作目錄,目錄名稱通常和工作目錄一致。

    如果使用編譯器打開項目,過多一層或者過少一層打開目錄都會導致導入錯誤,是因爲編譯器打開那個目錄,就將python的工作目錄設置那一層,只有上述結構才能實現下面的導入方式

  2. . 和 … 導入相對位置是執行的當前目錄

    • 因爲python的相對導入需要用到父級包作爲相對的參考位置,而這個位置是通過__name__屬性和__package__屬性進行決定的,當__name__等於__main__和__package__ = None 的時候導致的問題沒有父級包

    ImportError: attempted relative import with no known parent package

  3. init

    • python 2是包的標誌,只有擁有__init__文件的目錄纔會叫做包
    • python 3也是包的標誌,但是不強制識別,py2和py3的__init__文件共有功能,初始化包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章