python 中的包的概念跟c++中的namespace很相似,在大型的工程開發中,多個開發人員很容使用相同的函數名,為了避免相同函數名帶來的問題,就引入了包的概念。
在看別人寫的程序中經??吹叫稳纭癴rom xx import yy”xx就是包
制作一個本地使用的包
建立一個文件夾并命名為dl,文件夾名"dl"就是我們的包名,在文件夾內部新建一個“__init__.py”(注意init左右兩邊都是兩個底線符號),在文件夾下添加自己的模塊即可,代碼目錄如下,a.py中存放test_a函數,b.py中存放test_b函數
在dl同級目錄中添加要使用包的測試文件,并測試
測試代碼如下:
<code class="language-python">from dl import a,b a.test_a() b.test_b()</code>
可以發現能正常執行包dl中模塊a和模塊b中的函數(包是可以嵌套的,包中可以再添加包)
_init__.py中可以控制當前包都有哪些模塊可以導出,如果__init__.py中什么內容都沒有,表示當前包中所有的模塊都可以導出,其他模塊可以通過“from xx import *”的方式使用該包。
在__init__.py中添加“__all__ = ['a','b']”表示當前包內只有a,b兩個模塊可以導出
制作并安裝包
在包dl同級的目錄中創建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>
制作包執行命令 python setup.py build
生成壓縮包 python setup.py sdist
解壓縮包,并安裝 sudo python setup.py install
進入python終端測試:
功能一切正常。大功告成!
以上這篇python 制作自定義包并安裝到系統目錄的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答