使用Setuptools構(gòu)建Python軟件包

翻譯轉(zhuǎn)自Ayush_Singhal

在此博客中油宜,我們將使用Setuptools創(chuàng)建源代碼發(fā)行版和python包wheel。在走向如何包裝之前蹬刷。首先讓我們了解什么是源代碼分發(fā)和wheel文件皂甘。

包是指可以提供以解決特定用例的可用單元或庫将宪。對于打包户盯,我們有不同的構(gòu)建工具屯伞,例如在Scala中有SBT或在JAVA中有maven等。類似地挣磨,我們在python中有Setuptools來創(chuàng)建發(fā)行版。源代碼分發(fā)(sdist)和Wheels(whl)是在python中創(chuàng)建軟件包分發(fā)的兩種主要方法荤懂。

源代碼分發(fā)(sdist):除源代碼外茁裙,它還包含額外的文件(例如CI腳本,測試用例等)节仿,這些文件不需要提供給最終用戶和使用最少的方法晤锥。這將以不同的格式分發(fā)包,以針對不同平臺的不同格式創(chuàng)建檔案廊宪。默認(rèn)格式是.tar.gzLinux上的壓縮tar文件()和Windows上的ZIP文件矾瘾。

Wheels(whl):此發(fā)行版包含安裝所需的源文件和程序包元數(shù)據(jù)。(.whl)

setup.py

  1. 該文件包含setup()函數(shù)箭启,我們在其中提供您項目的特定詳細(xì)信息壕翩。其中包含諸如包名稱,版本傅寡,要求包放妈,作者,描述荐操,分類器等信息芜抒。
  2. 它是命令行界面,用于運(yùn)行與打包任務(wù)有關(guān)的各種命令托启。如果您想進(jìn)一步研究宅倒,只需運(yùn)行python setup.py –help
    python包裝的圖像結(jié)果

對于項目結(jié)構(gòu),我使用以下結(jié)構(gòu):

dummy_project/
|-- README
|-- setup.py
|-- example_pkg
|   |-- __init__.py
|   |-- calculate.py
|   |-- result.py
|-- tests
|-- |-- __init__.py
|-- |-- run.py
|-- |-- test.py

讓我們創(chuàng)建最重要的文件setup.py屯耸,該文件位于項目目錄的根目錄下拐迁。

from setuptools import setup

setup(
    name = "dummy_project",
    version = "1.0.0",
    author = "dummy",
    author_email = "dummy@domain.com",
    description = ("This project helps to understand about setup.py."),
    url = "https://www.python.org/doc/",
    packages=['example_pkg'],
    python_requires='>=3.6.0'
)

現(xiàn)在,讓我們使用以下命令創(chuàng)建一個發(fā)行版

python setup.py sdist bdist_wheel

這將生成兩個分布×菩澹現(xiàn)在唠亚,根據(jù)您的用例,您可以將您的軟件包推送到公共或私有python存儲庫中持痰≡钏眩可以通過pip命令安裝,如下所示:

pip install package_name
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市割卖,隨后出現(xiàn)的幾起案子前酿,更是在濱河造成了極大的恐慌,老刑警劉巖鹏溯,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罢维,死亡現(xiàn)場離奇詭異,居然都是意外死亡丙挽,警方通過查閱死者的電腦和手機(jī)肺孵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜阐,“玉大人平窘,你說我怎么就攤上這事〉试梗” “怎么了瑰艘?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肤舞。 經(jīng)常有香客問我紫新,道長,這世上最難降的妖魔是什么李剖? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任芒率,我火速辦了婚禮,結(jié)果婚禮上篙顺,老公的妹妹穿的比我還像新娘敲董。我一直安慰自己,他們只是感情好慰安,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布腋寨。 她就那樣靜靜地躺著,像睡著了一般化焕。 火紅的嫁衣襯著肌膚如雪萄窜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天撒桨,我揣著相機(jī)與錄音查刻,去河邊找鬼。 笑死凤类,一個胖子當(dāng)著我的面吹牛穗泵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谜疤,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼佃延,長吁一口氣:“原來是場噩夢啊……” “哼现诀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起履肃,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤仔沿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尺棋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體封锉,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年膘螟,在試婚紗的時候發(fā)現(xiàn)自己被綠了成福。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡荆残,死狀恐怖奴艾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脊阴,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布蚯瞧,位于F島的核電站嘿期,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏埋合。R本人自食惡果不足惜备徐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甚颂。 院中可真熱鬧蜜猾,春花似錦、人聲如沸振诬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赶么。三九已至肩豁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辫呻,已是汗流浹背清钥。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留放闺,地道東北人祟昭。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像怖侦,于是被迫代替她去往敵國和親篡悟。 傳聞我的和親對象是個殘疾皇子谜叹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345