Closed
Description
🐞 bug report
Affected Rule
py_binary
Description
Running py_binary
without a system interpreter (using a toolchain configured with python_register_toolchain
)
fails with the following error:
/usr/bin/env: 'python3': No such file or directory
After installing a system python3
, the rule runs fine and uses the correct Python interpreter (not the system one).
🔬 Minimal Reproduction
Files
# WORKSPACE
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "rules_python",
sha256 = "cdf6b84084aad8f10bf20b46b77cb48d83c319ebe6458a18e9d2cebf57807cdd",
strip_prefix = "rules_python-0.8.1",
url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.8.1.tar.gz",
)
load("@rules_python//python:repositories.bzl", "python_register_toolchains")
python_register_toolchains(
name = "python3_10",
python_version = "3.10",
)
# BUILD
exports_files(["interp_version.py"])
py_binary(
name = "interp_version",
srcs = ["interp_version.py"],
main = "interp_version.py",
)
# interp_version.py
import sys
print(sys.version_info)
Repro
Using the ubuntu:focal
Docker image:
root # bazel run //:interp_version
INFO: Analyzed target //:interp_version (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //:interp_version up-to-date:
bazel-bin/interp_version
INFO: Elapsed time: 0.773s, Critical Path: 0.01s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
/usr/bin/env: 'python3': No such file or directory <-- Error
root # apt-get install python3-minimal
[...]
root # python3 --version
Python 3.8.10
root # bazel run //:interp_version
INFO: Analyzed target //:interp_version (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
Target //:interp_version up-to-date:
bazel-bin/interp_version
INFO: Elapsed time: 0.707s, Critical Path: 0.01s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
sys.version_info(major=3, minor=10, micro=2, releaselevel='final', serial=0) <-- 3.10.2
🌍 Your Environment
Operating System:
Ubuntu Focal (20.04.4 LTS)
Output of bazel version
:
Bazelisk version: v1.11.0
Build label: 5.1.1
Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Fri Apr 8 15:49:48 2022 (1649432988)
Build timestamp: 1649432988
Build timestamp as int: 1649432988
Rules_python version:
0.80.1