python之ImportError:模塊引入異常問題
摘要
為什么要寫這篇文章?
我們在使用 pycharm 編程經(jīng)常會(huì)遇到 ImportError:模塊引入異常的情況;
原因:
模塊文件不在運(yùn)行的路徑上,即PyCharm IDE支持文件跳轉(zhuǎn),但是當(dāng)文件執(zhí)行時(shí),找不到模塊。
就會(huì)拋出 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í)行,可能就會(huì)拋出引入路徑錯(cuò)誤
(1)在pycharm中設(shè)置source路徑
File–>setting–>project:項(xiàng)目名–>project structure
將放package的文件夾設(shè)置為source,這樣import的模塊類等,就是通過這些source文件夾作為根路徑來查找,也就是在這些source文件夾中查找import的東西。

(2)清除緩存并重啟

(3)設(shè)置源目錄(注意設(shè)置的是哪個(gè)目錄,不能選擇項(xiàng)目根目錄)
package 右鍵 -> Mark Directory as -> Sources Root

Step 3:unresolved reference
導(dǎo)入第三方模塊時(shí),比如:
from flask import Flask
此時(shí)的Flask 下方是有紅色波浪線(如下圖)的,我這里確定已經(jīng)安裝完畢,且 ctrl + 左鍵也無法跳轉(zhuǎn)到聲明定義的源碼,雖然運(yùn)行是不會(huì)報(bào)錯(cuò)的,但是在使用的是不會(huì)提示相關(guān)的關(guān)鍵方法

這個(gè)問題困擾了我很久,查了很多資料,最終找到了解決方法;
(1)在pycharm的 settings >> Editor >> File Types
(2)選擇 Text 并將 File name patterns 列表(識別為文本的文件名/擴(kuò)展名列表),刪除 __init__.py 文件名

(3)刪除所有的文件名,發(fā)現(xiàn)問題已經(jīng)解決!

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 關(guān)于Python ImportError: No module named 通用解決方法
- 解決ImportError:cannot import name ‘Flatten‘ from ‘torch.nn‘問題
- python解決報(bào)錯(cuò)ImportError: Bad git executable.問題
- 安裝pyhttpx解決ImportError: DLL load failed錯(cuò)誤
- 解決Numpy報(bào)錯(cuò):ImportError: numpy.core.multiarray failed
- 關(guān)于sklearn包導(dǎo)入錯(cuò)誤:ImportError:?cannot?import?name Type解決方案
- Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決
- Python報(bào)錯(cuò)ImportError: No module named ‘missing_module‘的解決方法
- Python解決“ImportError:?Couldn‘t?import?Django”問題全攻略
相關(guān)文章
Python實(shí)現(xiàn)exe小工具的詳細(xì)代碼
Python exe工具是一種將Python代碼打包成可執(zhí)行文件的工具,它可以將Python程序轉(zhuǎn)換為獨(dú)立的可執(zhí)行文件,使得在沒有安裝Python解釋器的環(huán)境中也能夠運(yùn)行Python程序,本文給大家介紹了Python實(shí)現(xiàn)exe小工具的詳細(xì)代碼,需要的朋友可以參考下2024-04-04
使用國內(nèi)鏡像源創(chuàng)建離線PyPI鏡像的完整方案
根據(jù)知識庫信息,清華鏡像已明確會(huì)阻斷大量下載行為的請求,為避免此問題,我將提供一個(gè)安全使用國內(nèi)鏡像源的完整方案,確保能夠一次性準(zhǔn)備指定Python版本的所有包,然后導(dǎo)出到內(nèi)網(wǎng)環(huán)境,需要的朋友可以參考下2025-09-09
python 監(jiān)控某個(gè)進(jìn)程內(nèi)存的情況問題
這篇文章主要介紹了python 監(jiān)控某個(gè)進(jìn)程內(nèi)存的情況問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
使用Python matplotlib作圖時(shí),設(shè)置橫縱坐標(biāo)軸數(shù)值以百分比(%)顯示
這篇文章主要介紹了使用Python matplotlib作圖時(shí),設(shè)置橫縱坐標(biāo)軸數(shù)值以百分比(%)顯示,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python中的None與 NULL(即空字符)的區(qū)別詳解
這篇文章主要介紹了Python中的None與 NULL(即空字符)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

