如何在.bzl文件中访问Bazel缓存目录以配置pip缓存路径?
解决方案:使用Bazel内置Make变量指定缓存目录
- 直接在
extra_args中使用Bazel官方提供的$(OUTPUT_BASE)变量,它会在构建时自动展开为Bazel存储缓存和构建输出的根目录(output_base路径),完全无需硬编码或依赖外部命令计算。 - 修改后的代码示例:
compile_pip_requirements( # 其他配置项... extra_args = [ "--allow-unsafe", "--cache-dir", "$(OUTPUT_BASE)/pip-compile-cache", ], # 其他配置项... )
补充说明
$(OUTPUT_BASE)是Bazel原生支持的Make变量,展开逻辑由Bazel内部处理,比手动通过shell命令获取路径更安全可靠。- 建议在
$(OUTPUT_BASE)后追加自定义子目录(如示例中的pip-compile-cache),避免和Bazel其他缓存内容产生混淆。
内容的提问来源于stack exchange,提问作者HUNTER CROSLAND
相关产品推荐
相关产品推荐

