值此七夕佳節之際,給自己鬥爭了許久的bug做一個了斷,話不多說,看操作:
-
導入需要區分工作目錄
- 首先可以通過os.getcwd查看當前工作的目錄是哪裏,通常在python框架開發時,發現,在項目目錄外層嵌套一個工作目錄,目錄名稱通常和工作目錄一致。
如果使用編譯器打開項目,過多一層或者過少一層打開目錄都會導致導入錯誤,是因爲編譯器打開那個目錄,就將python的工作目錄設置那一層,只有上述結構才能實現下面的導入方式
-
. 和 … 導入相對位置是執行的當前目錄
- 因爲python的相對導入需要用到父級包作爲相對的參考位置,而這個位置是通過__name__屬性和__package__屬性進行決定的,當__name__等於__main__和__package__ = None 的時候導致的問題沒有父級包
ImportError: attempted relative import with no known parent package
-
init
- python 2是包的標誌,只有擁有__init__文件的目錄纔會叫做包
- python 3也是包的標誌,但是不強制識別,py2和py3的__init__文件共有功能,初始化包