跳转到主要内容

这是一个distutils扩展,用于使用已安装的protoc二进制文件为.proto文件生成Python代码。

项目描述

Python setuptools扩展

这是一个Python setuptools的扩展,它使用已安装的protobuf编译器(protoc)生成Python源代码。

安装

要使用此扩展,需要安装它,以便其他项目的setup.py可以导入它。

$ python setup.py build
$ python -m pip install .

(如果您想测试扩展的更改,可以使用python setup.py develop。)

用法

示例setup.py配置

from setuptools import setup
setup(
    # ...
    name='example_project',

    # Require this package, but only for setup (not installation):
    setup_requires=['protobuf_distutils'],

    options={
        # See below for details.
        'generate_py_protobufs': {
            'source_dir':        'path/to/protos',
            'extra_proto_paths': ['path/to/other/project/protos'],
            'output_dir':        'path/to/project/sources',  # default '.'
            'proto_files':       ['relative/path/to/just_this_file.proto'],
            'protoc':            'path/to/protoc.exe',
        },
    },
)

示例构建调用

这些步骤将生成protobuf源代码,以便在构建和安装example_project(见上方)时包含它们。

$ python setup.py generate_py_protobufs
$ python setup.py build
$ python -m pip install .

选项

  • source_dir:

    这是包含要处理的.proto文件的目录。

    默认行为是在source_dir下递归地生成所有找到的.proto文件的源代码。此行为可以通过以下选项控制。

  • proto_root_path:

    这是解析源.proto文件中导入的根路径。

    默认值为source_dir[source_dir] + self.extra_proto_paths中的最短前缀。

  • extra_proto_paths:

    指定应使用以查找导入的附加路径,除source_dir外。

    可以使用此选项指定其他protobuf源代码的路径,这些源代码由source_dir下的文件导入。不会为extra_proto_paths下的.proto文件生成Python代码。

  • output_dir:

    指定生成的代码应放置的位置。

    通常,这应该是生成Python模块应位于其下的根包。

    生成的文件将根据位于 proto_root_path 下的相对源路径放置在 output_dir 中。例如,源文件 ${proto_root_path}/subdir/message.proto 将生成为 Python 模块 ${output_dir}/subdir/message_pb2.py

  • proto_files:

    一个字符串列表,指定用于生成代码的特定 .proto 文件路径,而不是在 source_path 下搜索所有 .proto 文件。

    这些路径相对于 source_dir。例如,要仅为 ${source_dir}/subdir/message.proto 生成代码,指定 ['subdir/message.proto']

  • protoc:

    默认情况下,protoc 二进制文件(Protobuf 编译器)通过搜索环境路径来找到。要使用特定的 protoc 二进制文件,可以指定其路径。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

protobuf_distutils-1.0.tar.gz (5.9 kB 查看哈希)

上传时间

构建分布

protobuf_distutils-1.0-py3-none-any.whl (5.6 kB 查看哈希)

上传时间 Python 3

由以下机构支持

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