Python?報(bào)錯(cuò)ImportError:?No?module?named?***的問(wèn)題解決
一、報(bào)錯(cuò)原因
- 情形:運(yùn)用import函數(shù)調(diào)用Python包時(shí)出現(xiàn)。
- 原因:報(bào)這種錯(cuò)就是找不到對(duì)應(yīng)的包了。
- 原理:運(yùn)用import函數(shù)調(diào)用Python包時(shí),會(huì)從搜索路徑下面尋找對(duì)應(yīng)的包所在的庫(kù),如果沒(méi)有找到對(duì)應(yīng)的包名,就會(huì)報(bào)這個(gè)錯(cuò)。
二、解析情況
根據(jù)原理,報(bào)這種錯(cuò)會(huì)有兩種情況。
一種就是根本沒(méi)有安裝相應(yīng)的包,另一種就是包沒(méi)有安裝在對(duì)應(yīng)的搜索路徑下面,出現(xiàn)這種情況一般是Python安裝過(guò)多版本或者進(jìn)行過(guò)升級(jí)(也就是解釋器用錯(cuò)了,假如這個(gè)包是用Python3寫的,但你用Python2去運(yùn)行了,就會(huì)報(bào)錯(cuò))。
三、解決方法
- 先確認(rèn)是那種情況,直接搜索看看能不能找到相應(yīng)的包
find / -name 包名 #/代表全局變量,如果權(quán)限不夠全局變量,就縮小范圍到個(gè)人賬戶下的范圍 #或者用whereis函數(shù) whereis 包名
3.1、未安裝相應(yīng)的包
- 直接用pip安裝相應(yīng)的包
pip install 包名
- 如果沒(méi)有安裝pip,用下面的代碼安裝
sudo apt-get install python-pip
3.2、不在搜索路徑下
- 第一步:在判斷原因時(shí)查找過(guò)包,記錄下包的位置
以Python3.9為例,位置一般在
/..../python3.9/site-packages/
如果使用的是anaconda,路徑為:
/.../anaconda3/lib/python3.9/site-packages/
- 第二步:查看Python的搜索路徑有哪些
- 在Linux中輸入python進(jìn)入python操作頁(yè)面
- 輸入下面代碼查找搜索路徑
import sys sys.path
- 第三步:將包的路徑添加到搜索路徑中
- 設(shè)置pythonpath環(huán)境變量
編輯 ~/.profile 文件:(需要管理員權(quán)限)
export PYTHONPATH=$PYTHONPATH:待加入的搜索路徑
直接在命令行中輸入:(臨時(shí),下次開機(jī)時(shí)失效)
export PYTHONPATH=$PYTHONPATH:待加入的搜索路徑
注意不要有空格,否則會(huì)報(bào)錯(cuò)
添加.pth 文件(需要管理員權(quán)限)
在搜索目錄下新建一個(gè).pth 文件,文件名任意,文件中每一行是一個(gè)路徑,將第一步的路徑輸進(jìn)入。(python運(yùn)行時(shí)將會(huì)自動(dòng)把每個(gè).pth文件中的路徑加入到搜索路徑中)通過(guò)sys.path設(shè)置路徑(臨時(shí))
import sys sys.path.append("待加入的搜索路徑")
- 在pycharm中設(shè)置搜索路徑(只在pycharm中有效)
有兩種方法:
1). 右擊要加入的路徑文件夾,選擇“Mark Directory as ”,再選擇“source root”
2). 在edit configurations 中點(diǎn)擊“environment variables”,輸入:
name: PYTHONPYTH
Values: “待加入的路徑”
3.3、進(jìn)入對(duì)應(yīng)的版本
- 安裝多個(gè)Python版本后,可以在命令上標(biāo)注版本號(hào),來(lái)進(jìn)入不同大版本的Python。
- 這樣也可以解決搜索不到對(duì)應(yīng)包的問(wèn)題。包裝在了版本2中就進(jìn)Python2版本,包裝在了版本3中就進(jìn)python3版本(如果需要調(diào)用的多個(gè)包不在同一版本內(nèi),這個(gè)辦法就失效了)
- 運(yùn)行:python2(/3)
- 既然知道是包和解釋器不匹配造成的了,同樣的可以通過(guò)更改Python文件的文件頭部說(shuō)明也可以指定解釋器
- 具體操作:在Python文件的首行加上,#!/usr/bin/env python3
- 例如:
到此這篇關(guān)于Python 報(bào)錯(cuò)ImportError: No module named ***的文章就介紹到這了,更多相關(guān)Python ImportError報(bào)錯(cuò) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python解決報(bào)錯(cuò)ImportError: Bad git executable.問(wèn)題
- 解決python報(bào)錯(cuò)ImportError:urllib3?v2.0?only?supports?OpenSSL?1.1.1+
- Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決
- python項(xiàng)目導(dǎo)入open3d后報(bào)錯(cuò)ImportError:DLL load failed:找不到指定的模塊問(wèn)題
- Python報(bào)錯(cuò)ImportError: No module named ‘missing_module‘的解決方法
相關(guān)文章
實(shí)例講解Python設(shè)計(jì)模式編程之工廠方法模式的使用
這篇文章主要介紹了Python設(shè)計(jì)模式編程之工廠方法模式的運(yùn)用實(shí)例,文中也對(duì)Factory Method模式中涉及到的角色作出了解析,需要的朋友可以參考下2016-03-03python讀取和保存為excel、csv、txt文件及對(duì)DataFrame文件的基本操作指南
最近在做一個(gè)項(xiàng)目,必須把結(jié)果保存到excel文件中,下面這篇文章主要給大家介紹了關(guān)于python讀取和保存為excel、csv、txt文件及對(duì)DataFrame文件的基本操作指南的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08檢測(cè)python爬蟲時(shí)是否代理ip偽裝成功的方法
這篇文章主要介紹了檢測(cè)python爬蟲時(shí)是否代理ip偽裝成功的方法以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。,需要的朋友可以參考下2019-07-07用Python進(jìn)行數(shù)據(jù)清洗以及值處理
這篇文章主要介紹了用Python進(jìn)行數(shù)據(jù)清洗以及值處理,數(shù)據(jù)分析中,數(shù)據(jù)清洗是一個(gè)必備階段。數(shù)據(jù)分析所使用的數(shù)據(jù)一般都很龐大,致使數(shù)據(jù)不可避免的出現(xiàn)重復(fù)、缺失、異常值等異常數(shù)據(jù),如果忽視這些異常數(shù)據(jù),可能導(dǎo)致分析結(jié)果的準(zhǔn)確性,需要的朋友可以參考下2023-07-07Python selenium抓取微博內(nèi)容的示例代碼
本篇文章主要介紹了Python selenium抓取微博內(nèi)容的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python字符串處理函數(shù)簡(jiǎn)明總結(jié)
這篇文章主要介紹了Python字符串處理函數(shù)簡(jiǎn)明總結(jié),本文總結(jié)了一些常用的字符串處理函數(shù),需要的朋友可以參考下2015-04-04自動(dòng)化Nginx服務(wù)器的反向代理的配置方法
這篇文章主要介紹了自動(dòng)化Nginx服務(wù)器的反向代理的配置方法,反向代理是Nginx服務(wù)器的招牌功能,需要的朋友可以參考下2015-06-06每天遷移MySQL歷史數(shù)據(jù)到歷史庫(kù)Python腳本
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)每天遷移MySQL歷史數(shù)據(jù)到歷史庫(kù)的腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04