python之ImportError:模塊引入異常問題
摘要
為什么要寫這篇文章?
我們在使用 pycharm 編程經(jīng)常會遇到 ImportError:模塊引入異常的情況;
原因:
模塊文件不在運行的路徑上,即PyCharm IDE支持文件跳轉(zhuǎn),但是當(dāng)文件執(zhí)行時,找不到模塊。
就會拋出 ImportError;
解決方法
Step1:使用 sys.path.append 引入源路徑
如果是在 Terminal 執(zhí)行,通過 sys.path.append 添加源路徑
在模塊文件頂部,引入源目錄,源路徑下的所有模塊文件都可以被不加前綴直接import
import os import sys BASE_PATH = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0] if BASE_PATH not in sys.path: sys.path.append(BASE_PATH) # print(BASE_PATH) # 打印源路徑
Step2:Pycharm IDE - Sources Root
如果使用 Pycharm IDE ,模塊包下有多層目錄,直接執(zhí)行,可能就會拋出引入路徑錯誤
(1)在pycharm中設(shè)置source路徑
File–>setting–>project:項目名–>project structure
將放package的文件夾設(shè)置為source,這樣import的模塊類等,就是通過這些source文件夾作為根路徑來查找,也就是在這些source文件夾中查找import的東西。
(2)清除緩存并重啟
(3)設(shè)置源目錄(注意設(shè)置的是哪個目錄,不能選擇項目根目錄)
package 右鍵 -> Mark Directory as -> Sources Root
Step 3:unresolved reference
導(dǎo)入第三方模塊時,比如:
from flask import Flask
此時的Flask 下方是有紅色波浪線(如下圖)的,我這里確定已經(jīng)安裝完畢,且 ctrl + 左鍵也無法跳轉(zhuǎn)到聲明定義的源碼,雖然運行是不會報錯的,但是在使用的是不會提示相關(guān)的關(guān)鍵方法
這個問題困擾了我很久,查了很多資料,最終找到了解決方法;
(1)在pycharm的 settings >> Editor >> File Types
(2)選擇 Text 并將 File name patterns 列表(識別為文本的文件名/擴展名列表),刪除 __init__.py
文件名
(3)刪除所有的文件名,發(fā)現(xiàn)問題已經(jīng)解決!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 關(guān)于Python ImportError: No module named 通用解決方法
- 解決ImportError:cannot import name ‘Flatten‘ from ‘torch.nn‘問題
- python解決報錯ImportError: Bad git executable.問題
- 安裝pyhttpx解決ImportError: DLL load failed錯誤
- 解決Numpy報錯:ImportError: numpy.core.multiarray failed
- 關(guān)于sklearn包導(dǎo)入錯誤:ImportError:?cannot?import?name Type解決方案
- Python報錯ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決
- Python報錯ImportError: No module named ‘missing_module‘的解決方法
- Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略
相關(guān)文章
Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作大全
在后端應(yīng)用開發(fā)中,經(jīng)常會用到Postgres/Mysql/Mongo這三種數(shù)據(jù)庫的基本操作,今天小編就給大家詳細介紹Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫基本操作,感興趣的朋友一起看看吧2021-06-06Python使用struct處理二進制(pack和unpack用法)
這篇文章主要介紹了Python使用struct處理二進制(pack和unpack用法),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11Pandas實現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換的一些小技巧匯總
這篇文章主要給大家匯總介紹了關(guān)于Pandas實現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換的一些小技巧,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05python中g(shù)etattr函數(shù)使用方法 getattr實現(xiàn)工廠模式
這篇文章主要介紹了python中g(shù)etattr()這個函數(shù)的一些用法,大家參考使用吧2014-01-01Python深度學(xué)習(xí)之使用Albumentations對圖像做增強
諸如RandomCrop和CenterCrop之類的某些增強功能可能會變換圖像,使其不包含所有原始邊界框. 本示例說明如何使用名為RandomSizedBBoxSafeCrop的變換來裁剪圖像的一部分,但保留原始圖像的所有邊界框,需要的朋友可以參考下2021-05-05Python之lambda匿名函數(shù)及map和filter的用法
今天小編就為大家分享一篇關(guān)于Python之lambda匿名函數(shù)及map和filter的用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03