剛好前段時間寫過類似文章,大致內(nèi)容如下:
背景概述
作為測試開發(fā)人員,我們產(chǎn)出的測試工具大多數(shù)情況是面向測試部門或團(tuán)隊發(fā)布的。較以往,只是將整個工具模塊上傳至Git或SVN,測試人員進(jìn)行下載,并且根據(jù)requirements文件安裝依賴庫,然后才能使用該工具,工具交付、安裝成本較高。
本文主要介紹如何對模塊進(jìn)行打包,生成.whl文件,發(fā)布后用戶可以直接通過pipinstall*.whl進(jìn)行安裝,另外,還可以將打好的包上傳到官方倉庫PyPI中。
Wheel和Egg都是python的打包格式,根據(jù)官網(wǎng)說明,Wheel是發(fā)行版Python的新標(biāo)準(zhǔn)并且將要取代.egg,Wheel現(xiàn)在是Python的二進(jìn)制包的標(biāo)準(zhǔn)格式。
Wheel安裝
pipinstallwheel
模塊目錄結(jié)構(gòu)說明
- setup.py:打包配置文件
- setup.cfg:包含了構(gòu)建時候的一些默認(rèn)參數(shù),無可不添加該文件.
- MANIFEST.in:額外需要打包的文件,無可不添加該文件.
- README.md:項目說明文檔
- LICENSE.txt:項目許可說明文件,無可不添加該文件.
- 項目源碼:模塊源碼目錄lib
setup.py示例
考慮到其他配置文件的非必要性,我們主要介紹主要setup.py配置文件。
- name:項目名稱,也是最終在PyPI上搜索的名稱。
- version:版本號,一般由“主版本號、子版本號、修正版本號”三部分組成。
- author:作者姓名。
- description:項目的簡短描述,一般一句話就好,會顯示在PyPI上名字下端。
- url:通常為項目的GitHub、文檔等鏈接
- packages:列出項目內(nèi)需要被打包的所有package。
- package_data:依賴數(shù)據(jù)文件,數(shù)據(jù)文件須放在項目目錄內(nèi)且使用相對路徑。
- data_files:如果數(shù)據(jù)文件不存在于項目目錄內(nèi),則使用data_files參數(shù)或者M(jìn)ANIFEST.in文件進(jìn)行管理。
- install_requires-說明項目的依賴包,安裝包時pip會自動安裝。
生成whl文件
使用bdist_wheel打包
pythonsetup.pybdist_wheel
執(zhí)行結(jié)果部分截圖,如下
執(zhí)行完成后,目錄結(jié)構(gòu)如下:
安裝部署
我們將打包好的.whl對外發(fā)布,使用者可以通過pip進(jìn)行安裝部署,同時也可以上傳至pip源。
pipinstall*.whl
執(zhí)行結(jié)果截圖
若想了解如何使用Python實現(xiàn)發(fā)布exe應(yīng)用程序,可閱讀
https://www.toutiao.com/i6661228471324246542/
若對你有所幫助,歡迎大家評論、留言,。