commit | 6cdaba72628dbc8659dd3403b46b5f73b1bf0f06 | [log] [tgz] |
---|---|---|
author | HONG Yifan <elsk@google.com> | Thu Sep 11 19:34:42 2025 +0000 |
committer | HONG Yifan <elsk@google.com> | Thu Sep 11 19:47:14 2025 +0000 |
tree | d7c03cc490e0ba4d2800440d226cc363228f873e | |
parent | 86939a5023807c8a44f504e956068a0e822e52c1 [diff] |
ANDROID: kleaf: fix 2-stage bootstrapping for recursive Python invocations. For recursive Python invocations (e.g. Kleaf integration test, where we have `bazel run <py_binary>` which calls another `bazel run <py_binary>`), simply appending $venv_site_packages to PYTHONPATH won't work because the `import _bazel_site_init` of the inner py_binary will import the _bazel_site_init from the outer py_binary. To make this working properly, record an OLDPYTHONPATH variable so in the inner py_binary, we append $venv_site_packages to OLDPYTHONPATH to form PYTHONPATH, removing the venv_site_packages of the outer py_binary. Bug: 438286001 Change-Id: I14197b7727065f9946ea7b32f7b13c09e3800e63
This repository is the home of the core Python rules -- py_library
, py_binary
, py_test
, py_proto_library
, and related symbols that provide the basis for Python support in Bazel. It also contains package installation rules for integrating with PyPI and other indices.
Documentation for rules_python is at https://rules-python.readthedocs.io and in the Bazel Build Encyclopedia.
Examples live in the examples directory.
The core rules are stable. Their implementation is subject to Bazel's backward compatibility policy. This repository aims to follow semantic versioning.
The Bazel community maintains this repository. Neither Google nor the Bazel team provides support for the code. However, this repository is part of the test suite used to vet new Bazel releases. See How to contribute page for information on our development workflow.
For detailed documentation, see https://rules-python.readthedocs.io
See Bzlmod support for more details.