python 中的包的概念跟c++中的namespace很相似,在大型的工程開發(fā)中,多個開發(fā)人員很容使用相同的函數(shù)名,為了避免相同函數(shù)名帶來的問題,就引入了包的概念。
在看別人寫的程序中經(jīng)常看到形如“from xx import yy”xx就是包
制作一個本地使用的包
建立一個文件夾并命名為dl,文件夾名"dl"就是我們的包名,在文件夾內(nèi)部新建一個“__init__.py”(注意init左右兩邊都是兩個底線符號),在文件夾下添加自己的模塊即可,代碼目錄如下,a.py中存放test_a函數(shù),b.py中存放test_b函數(shù)
在dl同級目錄中添加要使用包的測試文件,并測試
測試代碼如下:
<code class="language-python">from dl import a,b a.test_a() b.test_b()</code>
可以發(fā)現(xiàn)能正常執(zhí)行包dl中模塊a和模塊b中的函數(shù)(包是可以嵌套的,包中可以再添加包)
_init__.py中可以控制當(dāng)前包都有哪些模塊可以導(dǎo)出,如果__init__.py中什么內(nèi)容都沒有,表示當(dāng)前包中所有的模塊都可以導(dǎo)出,其他模塊可以通過“from xx import *”的方式使用該包。
在__init__.py中添加“__all__ = ['a','b']”表示當(dāng)前包內(nèi)只有a,b兩個模塊可以導(dǎo)出
制作并安裝包
在包dl同級的目錄中創(chuàng)建setup.py
<code class="language-python">from distutils.core import setup setup(name="testModule", version="18.0.4", description="test to install module", author="szfhy", py_modules=['dl.a','dl.b', 'dl.network.facenet'])</code>
制作包執(zhí)行命令 python setup.py build
生成壓縮包 python setup.py sdist
解壓縮包,并安裝 sudo python setup.py install
進(jìn)入python終端測試:
功能一切正常。大功告成!
以上這篇python 制作自定義包并安裝到系統(tǒng)目錄的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選