标签: bazel-python

如何在 bazel 中为 Python 和 pip 选择运行时?

我正在尝试在 Ubuntu 20.04 上构建一个应用程序,其中 python3 指向 Python3.8,并且我正在构建 aganist Python3.6

我在 WORKSPACE 的同一目录中有以下运行时。

$ cat BUILD.bazel 
py_runtime(
    name = "python3.6",
    interpreter_path = "/usr/bin/python3.6",
)

Run Code Online (Sandbox Code Playgroud)

我尝试通过运行以下命令来构建应用程序,bazel 仍然指向 python3,即 python3.8

bazelisk build company/app_api:app --python_top=//:python3.6

Run Code Online (Sandbox Code Playgroud)

我还尝试了已弃用的选项,但也不起作用。

bazelisk build company/app_api:app --python_path=/usr/bin/python3.6
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

...
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--isolated', 'wheel', '-r', '/source_code/src/python/third_party/requirements.txt']' returned non-zero exit status 1.
...
Run Code Online (Sandbox Code Playgroud)

pip 正在尝试安装一个仅适用于 python3.6 的包,这就是它返回非零存在代码的原因。

如何强制 bazel 使用自定义 python 解释器?

python bazel bazel-python

5
推荐指数
1
解决办法
7265
查看次数

使用 Bazel 为 AWS Lambda 创建 Python zip

我有一个包含一组 Python AWS lambda 的 monorepo,并且我正在使用Bazel来构建和打包 lambda。我现在尝试使用 Bazel 创建一个遵循预期AWS Lambda 打包的zip 文件,并且我可以将其上传到 Lambda。想知道使用 Bazel 执行此操作的最佳方法是什么?

以下是我迄今为止尝试过的一些不同的事情:

尝试1:py_binary

构建.bazel

py_binary(
name = "main_binary",
srcs = glob(["*.py"]),
main = "main.py",
visibility = ["//appcode/api/transaction_details:__subpackages__"],
deps = [
        requirement("Faker"),
    ],
)
Run Code Online (Sandbox Code Playgroud)

问题:

这会生成以下内容:

  • main_binary(python 可执行文件)
  • main_binary.run文件
  • main_binary.runfiles_manifest

Lambda 期望处理程序的格式为lambda_function.lambda_handler. 由于main_binary是可执行文件而不是 python 文件,因此它不会公开实际的处理程序方法,并且 lambda 会因为找不到它而崩溃。我尝试更新处理程序配置以简单地指向main_binary但它爆炸了,因为它需要两个参数(即lambda_function.lambda_handler)。

尝试2:py_library + pkg_zip

构建.bazel

py_library(
name = "main",
srcs = glob(["*.py"]),
visibility = ["//appcode/api/transaction_details:__subpackages__"],
deps = [
        requirement("Faker"), …
Run Code Online (Sandbox Code Playgroud)

python aws-lambda bazel bazel-rules bazel-python

5
推荐指数
1
解决办法
1693
查看次数

标签 统计

bazel ×2

bazel-python ×2

python ×2

aws-lambda ×1

bazel-rules ×1