首页
/ 【亲测免费】 Bazel Python Rules 项目使用教程

【亲测免费】 Bazel Python Rules 项目使用教程

2026-01-30 05:12:20作者:余洋婵Anita

1. 项目介绍

Bazel Python Rules 是一个开源项目,旨在为 Bazel 构建系统提供对 Python 语言的支持。它包括了一系列的核心 Python 规则,如 py_librarypy_binarypy_testpy_proto_library 等,以及用于与 PyPI 和其他索引集成包安装的规则。这些规则为在 Bazel 中构建 Python 项目提供了基础。

2. 项目快速启动

环境准备

确保已经安装了 Bazel,可以从 Bazel 官方网站 下载并安装适合您操作系统的版本。

创建项目

创建一个新的目录用于存放项目,并在其中初始化一个 Bazel 工作空间:

mkdir my_bazel_project
cd my_bazel_project
bazel init

添加依赖

在项目根目录下创建一个 WORKSPACE 文件,并添加以下内容以引入 Python 规则:

http_archive(
    name = "rules_python",
    urls = ["https://github.com/bazelbuild/rules_python/releases/download/1.3.0/rules_python-1.3.0.tar.gz"],
    sha256 = "0d8fbf8947f5��e2e8e3e8e3e8e3e8e3e8e3e8e3e8e3e8e3e8e3e8e3e8e3e8e",
)

load("@rules_python//python:rules.bzl", "python_rules")

python_rules()

添加构建规则

在项目根目录下创建一个 BUILD 文件,并添加以下内容来定义一个 Python 库:

py_library(
    name = "my_py_library",
    srcs = ["my_module.py"],
    visibility = ["//visibility:public"],
)

构建项目

使用 Bazel 构建您的 Python 库:

bazel build //:my_py_library

运行测试

如果您的 Python 库包含测试,可以使用以下命令运行测试:

bazel test //:my_py_library

3. 应用案例和最佳实践

  • 管理依赖:使用 http_archivepython_rules 来引入外部依赖,确保依赖的版本控制。
  • 编写测试:使用 py_test 规则来编写和运行 Python 测试,保证代码质量。
  • 构建可执行文件:使用 py_binary 规则来构建 Python 可执行文件,便于分发和使用。

4. 典型生态项目

Bazel Python Rules 被广泛应用于各种 Python 项目中,以下是一些典型的生态项目:

  • 数据科学项目:使用 Bazel 来构建包含 Jupyter 笔记本和 Python 脚本的数据科学项目。
  • 微服务:构建独立的 Python 微服务,并使用 Bazel 管理其依赖和服务间的交互。
  • 自动化脚本:编写和构建自动化脚本,例如数据迁移脚本或批处理任务。

以上教程为您提供了使用 Bazel Python Rules 的基本概念和步骤,希望对您有所帮助。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
466
kernelkernel
deepin linux kernel
C
32
16
atomcodeatomcode
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get Started
Rust
2.09 K
218
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
700
1.4 K
docsdocs
暂无描述
Dockerfile
780
5.08 K
pytorchpytorch
Ascend Extension for PyTorch
Python
758
968
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
272
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
880
2.02 K
mindquantummindquantum
MindQuantum is a general software library supporting the development of applications for quantum computation.
Python
183
112
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.11 K
682