標籤:auth color 聯絡 tar.gz mat 發布 壓縮包 phone 指定
模組(Module)
Python中有一個概念叫做模組(module),這個和C語言中的標頭檔以及Java中的包很類似,比如在Python中要調用sqrt函數,必須用import關鍵字引入math這個模組。通俗的來說,模組就好比是工具包,要想使用這個工具包中的工具(就好比函數),就需要匯入這個模組。
匯入模組
- import: 引入具體模組,可以一次性引入多個模組,使用逗號隔開即可
eg:import modlue1,module2,module3,.....moduleN , 使用模組中的函數時,格式為:moduleName.funName()
- from ... import ... : 從模組中匯入一個指定的部分到當前命名空間
eg: from modduleName import name1 [,name2 [,name3 [,....nameN]]]
- from ... import * : 把一個模組的所有內容全都匯入到當前的命名空間
eg: from moduleName import *
包
包將有聯絡的模組組織在一起,有效避免模組名稱衝突問題,讓應用組織圖更加清晰。
一個包可以包含多個模組。
假定我們的包的例子有如下的目錄結構:
Phone/ __init__.py common_util.py Voicedta/ __init__.py Pots.py Isdn.py Fax/ __init__.py G3.py Mobile/ __init__.py Analog.py igital.py Pager/ __init__.py Numeric.py
Phone 是最頂層的包,Voicedta 等是它的子包。 我們可以這樣匯入子包:
import Phone.Mobile.AnalogPhone.Mobile.Analog.dial()
你也可使用 from-import 實現不同需求的匯入
模組製作
首先定義函數方法檔案,檔案裡面定義了多個函數方法可提供給外界使用。
moudle裡一般都會有一個__init__.py
檔案。有的__init__.py
中是空白,有的卻會有__all__
參數。
如果其他頁面import 的時候如果__init__.py
是空白的,可以直接import到moudle的所有函數。而如果__init__.py
中定義了__all__
,則import 的時候只會匯入__all__
部分定義的內容。
模組發布
├── setup.py├── suba│ ├── aa.py│ ├── bb.py│ └── __init__.py└── subb ├── cc.py ├── dd.py └── __init__.py
模組的目錄結構中包含一個setup.py檔案,用於定義模組名稱、包含的模組等模組資訊。
from distutils.core import setupsetup(name="模組名稱", version="版本", description="模組描述", author="模組作者", py_modules=[‘suba.aa‘, ‘suba.bb‘, ‘subb.cc‘, ‘subb.dd‘(此處主要是包含的模組內容)])
Linux命令(當前位置位於模組檔案夾):
python setup.py build
構建後目錄結構.├── build│ └── lib.linux-i686-2.7│ ├── suba│ │ ├── aa.py│ │ ├── bb.py│ │ └── __init__.py│ └── subb│ ├── cc.py│ ├── dd.py│ └── __init__.py├── setup.py├── suba│ ├── aa.py│ ├── bb.py│ └── __init__.py└── subb ├── cc.py ├── dd.py └── __init__.py
Linux命令(當前位置位於模組檔案夾):
python setup.py sdist打包後,產生最終發布壓縮包 moduleName-version.tar.gz , 目錄結構.├── build│ └── lib.linux-i686-2.7│ ├── suba│ │ ├── aa.py│ │ ├── bb.py│ │ └── __init__.py│ └── subb│ ├── cc.py│ ├── dd.py│ └── __init__.py├── dist│ └── xwp-1.0.tar.gz├── MANIFEST├── setup.py├── suba│ ├── aa.py│ ├── bb.py│ └── __init__.py└── subb ├── cc.py ├── dd.py └── __init__.py
模組安裝
- 找到模組的壓縮包
- 解壓
- 進入檔案夾
- 執行命令sudo
python setup.py install
此時,該模組已經安裝到系統中,可以直接使用import關鍵字進行匯入模組。
ps:如果在install的時候,執行目錄安裝,可以使用python setup.py install --prefix=安裝路徑
Python中模組的發布與安裝