python:模塊導入import問題總結

  1. 導入的路徑不準確,建議使用sys.path.append(os.environ[‘xx’])來導入項目目錄。然後根據項目目錄依次沿着路徑找模塊。

  2. from package.module import *
    導入的模塊所在的文件夾,沒有包初始化文件__init__.py,即不是包,沒有資格導入模塊。
    注:文件夾下的模塊無法導入。
    包下的模塊可以導入。
    文件夾轉化成包,在文件夾下創建一個空文件__init__.py即可

  3. 模塊之間存在循環引用問題。

  4. 包名和模塊名相同,可能會造成歧義。

  5. 兩個包名相同,系統會檢索完其中一個包後,報錯。不再繼續檢索底層包。
    例子:
    文件結構 我們分別調用test.test1.py/testother.test1.py,系統會找到頂層test.test1和test.testother.test1。 而當頂層test下的包初始文件被刪除後,依舊不會找到test.test.test1,只會直接報錯,顯示找不到相關模塊。 可能原因:系統找個一個test包後,會在該包下直接查找文件,找不到直接報錯。而不會繼續遍歷sys.pah列表。