Я пишу python веб-сервер, который использует буфер протокола. Я создаю буфер протокола, как показано ниже, внутри моего setup.py
def generate_proto(source):
"""Invokes the Protocol Compiler to generate a _pb2.py from the given
.proto file. Does nothing if the output already exists and is newer than
the input."""
output = source.replace(".proto", "_pb2.py")
if (not os.path.exists(output) or
(os.path.exists(source) and
os.path.getmtime(source) > os.path.getmtime(output))):
print("Generating %s..." % output)
if not os.path.exists(source):
sys.stderr.write("Can't find required file: %s\n" % source)
sys.exit(-1)
if protoc is None:
sys.stderr.write(
"Protocol buffers compiler 'protoc' not installed or not found.\n"
)
sys.exit(-1)
protoc_command = [protoc, "-I.", "--python_out=build/", source]
if subprocess.call(protoc_command) != 0:
sys.exit(-1)
Это генерирует файлы * _pb2.py Теперь на моем сервере я импортирую его, как показано ниже
from build.my_proto_pb2 import hello
Это отлично работает . Я не выполнял импорт из каталога сборки в прошлом, есть ли потенциальная проблема, с которой я могу столкнуться в будущем при импорте из каталога сборки?