python導(dǎo)入出現(xiàn)ImportError: No module named 'xxx'問題

最近遇到python導(dǎo)包異常問題叹括,看到一個優(yōu)秀的文章惯驼,分享給大家掘殴。這篇博客解釋了原因以及具體措施

python中,每個py文件被稱之為模塊车摄,每個具有init.py文件的目錄被稱為包寺谤。只要模
塊或者包所在的目錄在sys.path中仑鸥,就可以使用import 模塊或import 包來使用
如果你要使用的模塊(py文件)和當(dāng)前模塊在同一目錄,只要import相應(yīng)的文件名就好变屁,比
如在a.py中使用b.py:

import b 

但是如果要import一個不同目錄的文件(例如b.py)該怎么做呢眼俊?
首先需要使用sys.path.append方法將b.py所在目錄加入到搜素目錄中。然后進行import即
可敞贡,例如
import sys
sys.path.append('c:\xxxx\b.py') # 這個例子針對 windows 用戶來說的
大多數(shù)情況泵琳,上面的代碼工作的很好。但是如果你沒有發(fā)現(xiàn)上面代碼有什么問題的話誊役,可要

注意了获列,上面的代碼有時會找不到模塊或者包(ImportError: No module named
xxxxxx),這是因為:
sys模塊是使用c語言編寫的蛔垢,因此字符串支持 '\n', '\r', '\t'等來表示特殊字符击孩。所以

上面代碼最好寫成:
sys.path.append('c:\xxx\b.py')
或者sys.path.append('c:/xxxx/b.py')
這樣可以避免因為錯誤的組成轉(zhuǎn)義字符,而造成無效的搜索目錄(sys.path)設(shè)置鹏漆。

sys.path是python的搜索模塊的路徑集巩梢,是一個list
可以在python 環(huán)境下使用sys.path.append(path)添加相關(guān)的路徑,但在退出python環(huán)境后
自己添加的路徑就會自動消失了艺玲!

3括蝠、搜索路徑和路徑搜索

模塊的導(dǎo)入需要叫做“路徑搜索”的過程。

搜索路徑:查找一組目錄

路徑搜索:查找某個文件的操作

ImportError: No module named myModule
這種錯誤就是說:模塊不在搜索路徑里饭聚,從而導(dǎo)致路徑搜索失敿删!

導(dǎo)入模塊時秒梳,不帶模塊的后綴名法绵,比如.py
Python搜索模塊的路徑:
1)、程序的主目錄
2)酪碘、PTYHONPATH目錄(如果已經(jīng)進行了設(shè)置)
3)朋譬、標(biāo)準(zhǔn)連接庫目錄(一般在/usr/local/lib/python2.X/)
4)、任何的.pth文件的內(nèi)容(如果存在的話).新功能兴垦,允許用戶把有效果的目錄添加到模塊搜索路徑中去
.pth后綴的文本文件中一行一行的地列出目錄徙赢。
這四個組建組合起來就變成了sys.path了,

>>> import sys
>>> sys.path

導(dǎo)入時探越,Python會自動由左到右搜索這個列表中每個目錄狡赐。

關(guān)于 python ImportError: No module named 'xxx'的問題?
解決方法如下:

  1. 使用PYTHONPATH環(huán)境變量,在這個環(huán)境變量中輸入相關(guān)的路徑扶关,不同的路徑之間用逗號
    (英文的阴汇!)分開数冬,如果PYTHONPATH 變量還不存在节槐,可以創(chuàng)建它搀庶!
    這里的路徑會自動加入到sys.path中,永久存在于sys.path中而且可以在不同的python版本
    中共享铜异,應(yīng)該是一樣較為方便的方法哥倔。
    C:\Users\Administrator\Desktop\test\module1.py:
    def func1():
    print("func1")

將C:\Users\Administrator\Desktop\test添加到PYTHONPATH即可直接import module1,然后
調(diào)用:module1.func1()即可。

  1. 將自己做的py文件放到 site_packages 目錄下
  1. 使用pth文件揍庄,在 site-packages 文件中創(chuàng)建 .pth文件咆蒿,將模塊的路徑寫進去,一行一
    個路徑蚂子,以下是一個示例沃测,pth文件也可以使用注釋:
#.pth file for the  my project(這行是注釋),命名為xxx.pth文件
C:\Users\Administrator\Desktop\test

這個不失為一個好的方法食茎,但存在管理上的問題蒂破,而且不能在不同的python版本中共享。

  1. 在調(diào)用文件中添加sys.path.append("模塊文件目錄")别渔;
  1. 直接把模塊文件拷貝到$python_dir/Lib目錄下附迷。

通過以上5個方法就可以直接使用import module_name了。

參考鏈接

https://blog.csdn.net/damotiansheng/article/details/43916881

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哎媚,一起剝皮案震驚了整個濱河市喇伯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拨与,老刑警劉巖稻据,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異截珍,居然都是意外死亡攀甚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門岗喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秋度,“玉大人,你說我怎么就攤上這事钱床〖运梗” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵查牌,是天一觀的道長事期。 經(jīng)常有香客問我,道長纸颜,這世上最難降的妖魔是什么兽泣? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮胁孙,結(jié)果婚禮上唠倦,老公的妹妹穿的比我還像新娘称鳞。我一直安慰自己,他們只是感情好稠鼻,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布冈止。 她就那樣靜靜地躺著,像睡著了一般候齿。 火紅的嫁衣襯著肌膚如雪熙暴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天慌盯,我揣著相機與錄音周霉,去河邊找鬼。 笑死亚皂,一個胖子當(dāng)著我的面吹牛诗眨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孕讳,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼匠楚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了厂财?” 一聲冷哼從身側(cè)響起芋簿,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎璃饱,沒想到半個月后与斤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡荚恶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年撩穿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谒撼。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡食寡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出廓潜,到底是詐尸還是另有隱情抵皱,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布辩蛋,位于F島的核電站呻畸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏悼院。R本人自食惡果不足惜伤为,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望据途。 院中可真熱鬧绞愚,春花似錦剑鞍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽便脊。三九已至蚂四,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哪痰,已是汗流浹背遂赠。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晌杰,地道東北人跷睦。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像肋演,于是被迫代替她去往敵國和親抑诸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348