跳转到主要内容

setuptools和grpc/protobuf Python模块构建插件

项目描述

PyPI - Version PyPI - License PyPI - Python Version GitHub Workflow Status (with event)

setuptools插件,用于将protobuf和gRPC服务文件编译成Python模块。

此包提供了用于setuptoolsbuild_grpc命令。其目的是在setuptools打包的build步骤中构建gRPC模块。

这不是什么

这不是一个命令行脚本。

直接调用setup.py(例如python setup.py build_grpc)已被弃用,将在未来版本的setuptools中删除。

如果您想为构建gRPC模块使用命令行界面(CLI),请直接使用grpcio-tools(这正是此包在内部使用的工具)。安装该包后,您可以通过运行python -m grpc_tools.protoc --help来了解其选项。

安装

您可能不应该直接安装此包。相反,您应该将其添加到中的build-system.requires。请参阅配置

选项

命令build_grpc提供以下选项

  • proto_files:用于编译的protobuf文件的glob模式列表,每行一个。路径相对于当前目录。可以使用**来匹配任何文件和零个或多个目录。默认值为空列表。

  • grpc_files:用于编译的grpc服务文件的glob模式列表,每行一个。路径相对于当前目录。可以使用**来匹配任何文件和零个或多个目录。默认值为空列表。

  • proto_path:包含protobuf文件的根目录的路径。此路径通过-I选项传递给grpc_tools.protoc。默认值是.(当前目录)。

  • output_path:生成python模块的根目录的路径。此路径通过--python_out--grpc_python_out选项传递给grpc_tools.protoc。默认值是.(当前目录)。

配置

您必须将setuptools-grpc指定为构建后端要求的组成部分。这遵循了在PEP 518中引入的规范。您可以在setuptools文档中了解更多信息。

# file: pyproject.toml
[build-system]
requires = ["setuptools", "setuptools-grpc"]
build-backend = "setuptools.build_meta"

接下来,您需要将build_grpc实际添加为build命令的子命令。这需要在setup.py中完成,但如果setuptools将来允许声明性配置,我们将很高兴提供支持。

# file: setup.py
from setuptools import setup
from setuptools.command.build import build

class custom_build(build):
    sub_commands = [
        ('build_grpc', None),
    ] + build.sub_commands

setup(cmdclass={'build': custom_build})

最后,您需要配置setuptools_grpc本身。这可以在setup.py中完成,但我们建议在setup.cfg中进行声明性配置。根据您的项目结构,您可能不需要以下某些选项。您始终需要指定至少proto_filesgrpc_files,否则setuptools_grpc将不会执行任何操作。

# file: setup.cfg
[build_grpc]
proto_files = src/**/*.proto
grpc_files = src/**/*_grpc.proto
proto_path = ./src
output_path = ./out

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

setuptools-grpc-0.5.tar.gz (18.5 kB 查看哈希值)

上传时间

构建分发

setuptools_grpc-0.5-py3-none-any.whl (17.6 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面