制作python模塊安裝包[原創]

 python的第三方模塊越來越豐富,涉及的領域也非常廣,如科學計算、圖片處理、web應用、GUI開發等。當然也可以將自己寫的模塊進行打包或發布。一簡單的方法是將你的類包直接copy到python的lib目錄,但此方式不便于管理與維護,存在多個python版本時會非常混亂?,F介紹如何編寫setup.py來對一個簡單的python模塊進行打包。

一、編寫模塊
進入項目目錄
#cd /home/pysetup 
#vi foo.py

  • view plainprint?
    class MyClass():  
        def __init__(self):  
            self.blog = "http://blog.liuts.com"  
      
        def printblog(self):  
            print self.blog  
      
        def printBblog(self):  
            print self.blog.swapcase()

二、編寫setup.py
#vi setup.py

view plainprint?
from distutils.core import setup  
setup(name='Myblog',  
      version='1.0',  
      description='My Blog Distribution Utilities',  
      author='Liu tiansi',  
      author_email='liutiansi@gmail.com',  
      url='http://blog.liuts.com',  
      py_modules=['foo'],  
     )

更多參數說明見表:

1.png

三、setup.py參數說明

#python setup.py build     # 編譯
#python setup.py install    #安裝
#python setup.py sdist      #生成壓縮包(zip/tar.gz)
#python setup.py bdist_wininst  #生成NT平臺安裝包(.exe)
#python setup.py bdist_rpm #生成rpm包

或者直接"bdist 包格式",格式如下:

#python setup.py bdist --help-formats 
  --formats=rpm      RPM distribution
  --formats=gztar    gzip'ed tar file
  --formats=bztar    bzip2'ed tar file
  --formats=ztar     compressed tar file
  --formats=tar      tar file
  --formats=wininst  Windows executable installer
  --formats=zip      ZIP file

四、打包
#python setup.py sdist

running sdist
warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)
warning: sdist: standard file not found: should have one of README, README.txt
writing manifest file 'MANIFEST'
creating Myblog-1.0
making hard links in Myblog-1.0...
hard linking foo.py -> Myblog-1.0
hard linking setup.py -> Myblog-1.0
creating dist
tar -cf dist/Myblog-1.0.tar Myblog-1.0
gzip -f9 dist/Myblog-1.0.tar
removing 'Myblog-1.0' (and everything under it)

提示兩條warning可以忽略,不影響打包,當然一個完善的項目必須有README及MANIFEST.in(項目文件清單)文件。
#ls dist

Myblog-1.0.tar.gz

五、安裝
#tar -zxvf Myblog-1.0.tar.gz
#cd Myblog-1.0.tar.gz
#python setup.py install (此命令大家再熟悉不過了)

running install
running build
running build_py
creating build/lib.linux-x86_64-2.6
copying foo.py -> build/lib.linux-x86_64-2.6
running install_lib
copying build/lib.linux-x86_64-2.6/foo.py -> /usr/local/lib/python2.6/dist-packages
byte-compiling /usr/local/lib/python2.6/dist-packages/foo.py to foo.pyc
running install_egg_info
Writing /usr/local/lib/python2.6/dist-packages/Myblog-1.0.egg-info

六、測試

>>> from foo import MyClass
>>> app=MyClass()
>>> app.print printblog()
>>> app.printblog()
http://blog.liuts.com
>>> app.printBblog()
HTTP://BLOG.LIUTS.COM
>>>

參考文獻:
http://docs.python.org/distutils/setupscript.html

如大家有什么疑問或感興趣的話題可以通過weibo與我交流:http://t.qq.com/yorkoliu

轉自:http://blog.liuts.com/post/213/#entrymore

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/1737

(0)
s19930811s19930811
上一篇 2015-03-27 14:22
下一篇 2015-03-27 17:10

相關推薦

  • 探究PHP底層

    1、PHP是什么? PHP 指的是我們從外面看到的一套完整的系統。這聽起來有點糊涂,但其實并不復雜(PHP4 內部結構圖)。從功能上來分:我們可以分為三部分: 1、 解釋器部分(Zend 以引擎),負責對輸入代碼的分析、翻譯和執行;2、 功能性部分(PHP功能函數以及擴展),負責具體實現語言的各種功能(比如它的函數等等);3、 接口部分(SAPI),負責同 …

    Linux干貨 2015-04-10
  • Linux 進程及作業管理

    Linux 進程及作業管理 概述:      我們在實際的運維工作中經常要對服務器做各種監控,以了解其相關狀態,比如,CPU利用率,磁盤空間利用率,等等,這就需要我們了解相關的數據并學會使用各種工具來分析數據。本章就將總結Linux系統中進程管理和作業管理的相關命令、參數和工具,包括:進程的相關定義、分類、狀態以及進程查看和管理…

    Linux干貨 2016-09-10
  • 郵件原理你真的造嗎

    一、前言     雖然現在QQ、微信等即時聊天工具原來越盛行,但是在企業與企業之間大部分還是會使用郵件系統進行信息交換。所以作為運維人員,更需要了解這個技術的原理。下面會慢慢介紹郵件的組件功能,將其組成部分。以及郵件的工作原理。     小貼士:郵件系統是一個比較復雜的系統,過程…

    Linux干貨 2015-08-17
  • Linux百科

    百度百科摘

    Linux干貨 2018-03-26
  • 馬哥教育網絡班22期第五周博客作業

    正則表達式與grep 文本編輯工具     grep:是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來;     sed :是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用;     awk…

    Linux干貨 2016-10-19
  • 【招聘】天津/贊普科技股份有限公司/Linux系統運維工程師/6-7k/五險一金

    天津贊普科技股份有限公司——簡稱贊普科技,成立于2003年,坐落于天津市濱海高新區,是一家專業的互聯網綜合服務商,主營數字網絡建設、數據接入及增值服務和智能化網絡產品及服務。歷經11年的發展,贊普科技已成長為高新區科技型小巨人企業、國家高新技術企業,專注于移動互聯與大數據、云計算、商業WIFI行業的領軍者。     贊普科技計劃…

    Linux干貨 2015-12-03
欧美性久久久久