Python中模塊的發布與安裝


模塊(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.Analog Phone.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文件,用於定義模塊名稱、包含的模塊等模塊信息。

  •  setup.py中的內容:
from distutils.core import setup

setup(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=安裝路徑

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM