Python中如何添加自定義模塊
一般來(lái)說(shuō),我們會(huì)將自己寫的Python模塊與python自帶的模塊分開(kāi)存放以達(dá)到便于維護(hù)的目的。那么如何在Python中添加自定義的模塊呢?
在解答這個(gè)問(wèn)題之前,我們首先要明確兩點(diǎn):
1.嚴(yán)格區(qū)分包(package)和文件夾。包的定義就是包含__init__.py的文件夾。如果沒(méi)有__init__.py,那么就是普通的文件夾。
2.模塊導(dǎo)入寫法,注意只要包路徑,不要文件夾路徑。
Python 運(yùn)行環(huán)境在查找?guī)煳募r(shí)是對(duì) sys.path 列表進(jìn)行遍歷,如果我們想在運(yùn)行環(huán)境中注冊(cè)新的類庫(kù),主要有以下2種方法:
1. 在sys.path列表中添加新的路徑。
2. 將庫(kù)文件復(fù)制到sys.path列表中的目錄里(如site-packages目錄)。
我們可以通過(guò)運(yùn)行一下代碼來(lái)查看sys.path
import sysprint sys.path
運(yùn)行結(jié)果
[’/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old’, ’/System/Library/Frameworks/Python.
framework/Versions/2.7/lib/python2.7/lib-dynload’, ’/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/
lib/python/PyObjC’, ’/Library/Python/2.7/site-packages’]
這兩種辦法中第一種比較簡(jiǎn)單,而且對(duì)環(huán)境的影響最小。
下面我們來(lái)看一下第一種方法具體如何操作:
在python安裝目錄的site-package文件夾中新建pythontab.pth,上面site-package的路徑是:/Library/Python/2.7/site-packages,文件的內(nèi)容是:需要導(dǎo)入的package所在的文件夾路徑。
這樣,Python 在遍歷已知的庫(kù)文件目錄過(guò)程中,如果見(jiàn)到一個(gè) .pth 文件,就會(huì)將文件中所記錄的路徑加入到 sys.path 設(shè)置中,這樣 .pth 文件說(shuō)指明的package也就可以被Python運(yùn)行環(huán)境順利找到, 我們就可以像使用內(nèi)置模塊一樣引入自定義模塊了。
如果缺省的sys.path中沒(méi)有含有自己的模塊或包的路徑,我們也可以使用sys.path.apend方法來(lái)動(dòng)態(tài)加入包路徑。
知識(shí)點(diǎn)擴(kuò)展:
Python中添加自定義模塊原則:
1. 嚴(yán)格區(qū)分包和文件夾。包的定義就是包含__init__.py的文件夾。如果沒(méi)有__init__.py,那么就是普通的文件夾。
2. 導(dǎo)入package。 在python 安裝目錄的site-package文件夾中新建xxx.pth,內(nèi)容是需要導(dǎo)入的package所在的文件夾路徑。
3. 導(dǎo)入模塊。就是一般的模塊導(dǎo)入寫法,注意只要包路徑,不要文件夾路徑。
以上就是Python中如何添加自定義模塊的詳細(xì)內(nèi)容,更多關(guān)于Python中添加自定義模塊的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. html中的form不提交(排除)某些input 原創(chuàng)2. 淺談CSS不規(guī)則邊框的生成方案3. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問(wèn)題……4. asp在iis7報(bào)錯(cuò)行號(hào)不準(zhǔn)問(wèn)題的解決方法5. jsp實(shí)現(xiàn)簡(jiǎn)單用戶7天內(nèi)免登錄6. 詳解盒子端CSS動(dòng)畫性能提升7. 5個(gè)HTML5的常用本地存儲(chǔ)方式詳解與介紹8. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享9. 基于javaweb+jsp實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)10. CSS百分比padding制作圖片自適應(yīng)布局
