翻譯轉(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.gz
Linux上的壓縮tar文件()和Windows上的ZIP文件矾瘾。
Wheels(whl):此發(fā)行版包含安裝所需的源文件和程序包元數(shù)據(jù)。(.whl)
setup.py:
- 該文件包含setup()函數(shù)箭启,我們在其中提供您項目的特定詳細(xì)信息壕翩。其中包含諸如包名稱,版本傅寡,要求包放妈,作者,描述荐操,分類器等信息芜抒。
- 它是命令行界面,用于運(yùn)行與打包任務(wù)有關(guān)的各種命令托启。如果您想進(jìn)一步研究宅倒,只需運(yùn)行python setup.py –help
對于項目結(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