这是一个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 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 261f85fe785437be76955306b3a59434851bc18ba3acb71eed86374d0c969ae2 |
|
MD5 | b92c5630515b5e75375913843660ff38 |
|
BLAKE2b-256 | 81919c1d919528b38d9461c2c209df85845d286b901274bbe65e4957baf27366 |
protobuf_distutils-1.0-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c055888653127956cdd1e3acfcbcdd7b14e279f339198904c829f7ed61f67b9d |
|
MD5 | 76f53dcd92ca86f4fb845efb6c0ae59a |
|
BLAKE2b-256 | fdd34481f2e51609af533cb299683a06a6c93bbc800d730832e990a193160631 |