在將此標記爲重複項之前,請閱讀整個問題,它不是通常的sys.path導入錯誤。不尋常的Python導入錯誤
這是模塊的目錄結構,我試圖導入
root
|_moduleDir1
| |_ myModule1.py
| |_ __init__.py
|_ moduleDir2
|_ myModule2.py
|_ __init__.py
我用兩臺不同的機器工作。我的腳本在一個上運行良好,另一方面我得到導入錯誤。起初我認爲這只是一個環境問題,但我認爲還有其他事情正在發生。當我運行我的腳本發生故障的機器上
import moduleDir1.myModule1
進口myModule1.py它拋出下面的導入錯誤。
ImportError: No module named myModule1
的原因,我不相信這是一個PATH問題或sys.path的問題是,我已經添加了根目錄到相應的環境變量,當我添加
import moduleDir2.myModule2
以上myModule1在腳本中導入,它不會拋出導入錯誤,所以我知道root在sys.path中,否則會爲它們拋出錯誤。另外我不認爲這是init.py的問題,因爲它可以在另一臺機器上正常工作。這兩臺機器都運行窗口10.
我很難過,我搜索並測試了幾個小時,沒有運氣。我能找到的所有帖子都是init.py或sys.path的問題,並且這些不是我的問題的正確解決方案。任何建議或想法,爲什麼我可能會得到一個模塊的導入錯誤,而不是其他的,當他們在同一個父目錄下,將不勝感激。
請顯示試圖導入'myModule1'的代碼,並顯示完整的錯誤消息。 – BrenBarn
試試'import moduleDir1',然後'print(moduleDir1 .__ file __)'。輸出是你期望的嗎?如果在'sys.path'之前有另一個名爲'moduleDir1'的目錄,或者名爲'moduleDir1.py'的文件將被導入,如果沒有名爲'myModule1'的子模塊,那麼你會得到這個錯誤。 – BrenBarn
你擊中了頭部!還有另一個模塊名稱相同的東西位於系統的其他地方,那就是導入的東西。非常感謝!你救了我誰知道多少時間! – jerrik