一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

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

 quasiceo 2017-04-22
2015-02-23 17:13 98047人閱讀 評論(2) 收藏 舉報
分類:
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所在目錄加入到搜素目錄中。然后進(jìn)行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)進(jìn)行了設(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()即可。


2. 將自己做的py文件放到 site_packages 目錄下


3. 使用pth文件,在 site-packages 文件中創(chuàng)建 .pth文件,將模塊的路徑寫進(jìn)去,一行一
個路徑,以下是一個示例,pth文件也可以使用注釋:

# .pth file for the  my project(這行是注釋),命名為xxx.pth文件
C:\Users\Administrator\Desktop\test
這個不失為一個好的方法,但存在管理上的問題,而且不能在不同的python版本中共享。


4. 在調(diào)用文件中添加sys.path.append("模塊文件目錄");


5. 直接把模塊文件拷貝到$python_dir/Lib目錄下。

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


參考文章:http://my.oschina.net/leejun2005/blog/109679


0
10

我的同類文章

更多文章

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产成人精品国产成人亚洲| 日韩免费av一区二区三区| 日韩国产传媒在线精品| 欧美大胆女人的大胆人体| 99久久免费看国产精品| 国产精品成人一区二区三区夜夜夜| 三级理论午夜福利在线看| 日韩精品成区中文字幕| 五月天丁香婷婷一区二区| 人人爽夜夜爽夜夜爽精品视频| 国产精品亚洲欧美一区麻豆| 国产乱人伦精品一区二区三区四区| 欧美丝袜诱惑一区二区| 日本淫片一区二区三区| 欧美91精品国产自产| 中国一区二区三区人妻| 香蕉尹人视频在线精品| 精品综合欧美一区二区三区| 欧美精品二区中文乱码字幕高清| 中文文精品字幕一区二区| 国产一区二区在线免费| 欧美亚洲美女资源国产| 精品人妻一区二区三区免费看| 国产精品欧美一区二区三区不卡| 亚洲香艳网久久五月婷婷| 空之色水之色在线播放| 国产不卡一区二区四区| 欧美亚洲三级视频在线观看| 中文字幕亚洲精品人妻| 果冻传媒精选麻豆白晶晶 | 蜜桃av人妻精品一区二区三区 | 中文字幕日韩无套内射| 熟女少妇久久一区二区三区| 在线观看免费无遮挡大尺度视频| 国产欧美性成人精品午夜| 东京热加勒比一区二区三区| 91欧美亚洲视频在线| 亚洲专区一区中文字幕| 精品人妻一区二区四区| 中国美女草逼一级黄片视频| 国产免费无遮挡精品视频 |