Python中模組的發布與安裝

來源:互聯網
上載者:User

標籤: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檔案,用於定義模組名稱、包含的模組等模組資訊。

  •  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中模組的發布與安裝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.