本文主要針對的自己寫的包無法正常import的情況,如果是第三方包的話正常來說沒有問題。 第三方包 主要考慮沒有安裝對應的版本以及包名寫錯了等奇葩情況,具體可參考ModuleNotFoundError: No module named ‘xxx’可能的解決方案大全 自建的包 如果是自己的包,可按照下 ...
本文主要針對的自己寫的包無法正常import的情況,如果是第三方包的話正常來說沒有問題。
第三方包
主要考慮沒有安裝對應的版本以及包名寫錯了等奇葩情況,具體可參考ModuleNotFoundError: No module named ‘xxx’可能的解決方案大全
自建的包
如果是自己的包,可按照下麵順序來檢查:
- 檢查
__init__.py
文件是否存在:如果這個包是你自己寫的,不妨檢查一下待導入的包的根目錄是否存在一個__init__.py文件,沒有的話建一個空的__init__.py文件即可 (註意:不光要檢查待導入的包根目錄是否存在__init__.py文件,還需要檢查當前程式所在文件夾是否存在這個文件) - 自己建的包不在PYTHONPATH目錄下:這樣通用的解決方案就是將對應包的路徑添加到對應目錄即可。
sys.path.append({這裡改成model_path})
#比如:sys.path.append('~/abcd/Modeling') 自己建的包在Modeling文件夾下
- 第二步的代碼和import的順序:第二步的代碼的執行順序必須要在import之前,一個容易忽視的情況就是在
if __name__ == '__main__'
中寫了對應的sys.path.append
,但是由於import寫在文件頂部的話會執行在語句之前,因為沒有生效。
我的博客園:https://www.cnblogs.com/swx123
我的github(代碼一般都放在這裡):https://github.com/578223592