python импорт из сгенерированного пакета сборки - хорошая или плохая практика - PullRequest
0 голосов
/ 18 июня 2020

Я пишу 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

Это отлично работает . Я не выполнял импорт из каталога сборки в прошлом, есть ли потенциальная проблема, с которой я могу столкнуться в будущем при импорте из каталога сборки?

...