包装入口点¶
建议将命令行实用程序编写为带有入口点的可安装程序包,而不是告诉用户运行 python hello.py
。
分发包是一种 .whl
使用pip或其他Python安装程序安装的文件。您可以使用 pyproject.toml
文件来描述项目以及如何将其构建到包中。您可以将此包上传到PyPI,或以其他方式将其分发给您的用户。
Python安装程序创建将运行指定的Python函数的可执行脚本。这些被称为“入口点”。安装程序知道如何创建可执行文件,而与操作系统无关,因此它可以在Linux、Windows、MacOS等操作系统上运行。
项目文件¶
要安装带有入口点的应用程序,您只需脚本和 pyproject.toml
文件。下面是一个项目目录示例:
hello-project/
src/
hello/
__init__.py
pyproject.toml
内容 hello.py
:
import click
@click.command()
def cli():
"""Prints a greeting."""
click.echo("Hello, World!")
内容 pyproject.toml
:
[project]
name = "hello"
version = "1.0.0"
description = "Hello CLI"
requires-python = ">=3.11"
dependencies = [
"click>=8.1",
]
[project.scripts]
hello = "hello:cli"
[build-system]
requires = ["flit_core<4"]
build-backend = "flit_core.buildapi"
神奇之处在于 project.scripts
一节。每行标识一个可执行脚本。等号前的第一部分 (=
)是应该生成的脚本的名称,第二部分是导入路径,后跟冒号 (:
)和要调用的函数(Click命令)。
安装¶
安装包后,安装程序将根据配置创建可执行脚本。在开发过程中,可以在可编辑模式下使用 -e
选择。记住要使用虚拟环境!
$ python -m venv .venv
$ . .venv/bin/activate
$ pip install -e .
之后,您的命令应该可用:
$ hello
Hello, World!