翻译转自Ayush_Singhal
在此博客中,我们将使用Setuptools创建源代码发行版和python包wheel。在走向如何包装之前。首先让我们了解什么是源代码分发和wheel文件。
包是指可以提供以解决特定用例的可用单元或库。对于打包,我们有不同的构建工具,例如在Scala中有SBT或在JAVA中有maven等。类似地,我们在python中有Setuptools来创建发行版。源代码分发(sdist)和Wheels(whl)是在python中创建软件包分发的两种主要方法。
源代码分发(sdist):除源代码外,它还包含额外的文件(例如CI脚本,测试用例等),这些文件不需要提供给最终用户和使用最少的方法。这将以不同的格式分发包,以针对不同平台的不同格式创建档案。默认格式是.tar.gz
Linux上的压缩tar文件()和Windows上的ZIP文件。
Wheels(whl):此发行版包含安装所需的源文件和程序包元数据。(.whl)
setup.py:
- 该文件包含setup()函数,我们在其中提供您项目的特定详细信息。其中包含诸如包名称,版本,要求包,作者,描述,分类器等信息。
- 它是命令行界面,用于运行与打包任务有关的各种命令。如果您想进一步研究,只需运行python setup.py –help
对于项目结构,我使用以下结构:
dummy_project/
|-- README
|-- setup.py
|-- example_pkg
| |-- __init__.py
| |-- calculate.py
| |-- result.py
|-- tests
|-- |-- __init__.py
|-- |-- run.py
|-- |-- test.py
让我们创建最重要的文件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'
)
现在,让我们使用以下命令创建一个发行版
python setup.py sdist bdist_wheel
这将生成两个分布。现在,根据您的用例,您可以将您的软件包推送到公共或私有python存储库中。可以通过pip命令安装,如下所示:
pip install package_name