如何使用 Bazel 运行带有 Gunicorn 的 Python 应用程序

问题描述 投票:0回答:1

我正在开发一个 Python 项目,我需要使用 Bazel 来管理我的构建。我想使用 Gunicorn 作为 HTTP 服务器来运行我的 Python 应用程序。我已经在我的requirements.txt 文件中添加了gunicorn 作为依赖项。但是,我不确定如何配置 Bazel 以使用 Gunicorn 作为我的应用程序的运行程序。有人可以提供有关如何设置的清晰示例或指南吗?

这是我到目前为止所拥有的:

需求.txt:

flask
gunicorn
_pip_parse(
        name = "embeddings_requirements",
        python_interpreter_target = interpreter,
        requirements_lock = "//service:requirements.txt"
)

构建.bazel:

load("@aspect_rules_py//py:defs.bzl", "py_binary")

    py_binary(
        name = name,
        srcs = merged_srcs,
        data = merged_data,
        env = binary_env,
        imports = ["src", "."],
        main = main,
        tags = merged_tags,
        toolchains = merged_toolchains,
        visibility = merged_visibility,
        deps = merged_deps
    )
python flask gunicorn bazel
1个回答
0
投票

要使用 pip deps 的入口点运行任何 python 脚本,需要使用方面规则 py

 中的 
py_console_script_binary

规则
  load("@rules_python//python/entry_points:py_console_script_binary.bzl", "py_console_script_binary")

py_console_script_binary(
        name = "my_gunicorn_target",
        script = script, # "gunicorn"
        pkg = pkg, # requirement("gunicorn")
        binary_rule = py_binary,
        deps = binary_deps,
        **kwargs
    )
© www.soinside.com 2019 - 2024. All rights reserved.