[2015-08-13] python023

Python包

  • 包用於將一組模塊歸併到一個目錄中,此目錄即爲包,目錄名即爲包名
    • 包是一個有層次的文件目錄結構,它定義了一個由模塊和子包組成的Python應用執行環境
    • 基於包,Python在執行模塊導入時可以指定模塊的導入路徑:
      • import dir1.dir2.mod1

模塊的頂層執行及被導入:

一個模塊文件可以同時支持頂層執行(作爲頂層文件)或被導入(作爲模塊文件)

    每個模塊都有個名爲__name__的內置屬性,Python會自動設置該屬性
        如果文件是以頂層程序文件執行,在啓動時,__name__的值爲"__main__"
        如果是被導入,則__name__的值爲模塊名
    可以在模塊文件中檢測自己的__name__屬性,以之實現在執行時運行指定的代碼
    常用於模塊的自我測試:
        #!/usr/bin/python 
        #
        def testFunc():
            print "hello,..."
        if __name__ == "__main__":
            testFunc()

這裏寫圖片描述

發佈Python模塊或程序:

Python模塊、擴展和應用程序可以按以下幾種形式進行打包和發佈

  • 壓縮文件(使用distutils)
    • Windows的zip文件和類Unix平臺的.tar.gz文件
  • 自動解包或自動安裝可執行文件
    • Windows中的.exe文件
  • 自包含的,不要求安裝的預備運行可執行程序
    • Windows的.exe文件、Unix上帶有一個小的腳本前綴的ZIP壓縮文件、Max上的.app文件等
  • 平臺相關的安裝程序
    • Windows上的.msi文件、Linux上常見的.rpm、src.rpm和.deb文件等
  • Python eggs
    • 較流行的第三方擴展

使用distutils發佈模塊:

  • disutils模塊能夠幫助完成模塊或程序發佈
    • 發佈”是指一個文件集合,這些文件聯合在一起可使用distutils構建、打包和發佈模塊
    • 創建好的發佈可以用於安裝,也可上傳到PyPI與他人共享
  • 創建發佈
    • 將各代碼文件組織到模塊容器中
    • 準備一個README或README.txt文件
    • 而後在容器中創建setup.py文件
  • setup.py的常用參數:
    name                包的名稱(必須)
    Version             版本號(必須)
    author      
    author_email
    maintainer
    maintainer_email
    py_modules          各模塊名稱組成的列表,此些模塊可能位於包的根目錄下(modname),也可能位於某子包目錄中(subpkg1.modname)
    platforms           平臺列表
    license             許可證
    packages            各子包名稱的列表
    url
    download_url

    大體分爲兩類:元數據信息和包中的內容列表
  • 完成打包:
    在要發佈的容器目錄中執行”python setup.py sdist”命令

  • 打包格式:

    python setup.py sdist 
    可以爲sdist指定格式:--formats=***
        zip:    zip file
        gztar:  tar.gz file 
        bztar:  tar.bz2 file 
        ztar:   tar.Z file 
        tar:    tar file

    python setup.py bdist
    可以爲bdist指定格式:--formats=***
        gztar:  tar.gz file 
        ztar:   tar.Z file
        tar:    tar file 
        zip:    zip file
        rpm:    RPM Package
        pkgtool:    Solaris pkgtool
        wininst:    Windows上自解壓的zip格式的包
        msi:    Microsoft Installer
  • 獲取幫助的方式:
    python setup.py --help 
    python setup.py --help-commands         所有可以使用的命令,如build,install
    python setup.py COMMAND --help          獲取特定命令的幫助
    python setup.py COMMAND --help=formats  獲取特定命令支持使用的格式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章