fix: run python version call in isolated mode (#2761)
Similar to https://github.com/bazel-contrib/rules_python/pull/2738, runs
the call to get the Python interpreter version in isolated mode via
`-I`, ensuring userland Python variables do not affect this call.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7aeb135..f38732f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -91,6 +91,7 @@
Fixes [#2685](https://github.com/bazel-contrib/rules_python/issues/2685).
* (toolchains) Run the check on the Python interpreter in isolated mode, to ensure it's not affected by userland environment variables, such as `PYTHONPATH`.
* (toolchains) Ensure temporary `.pyc` and `.pyo` files are also excluded from the interpreters repository files.
+* (pypi) Run interpreter version call in isolated mode, to ensure it's not affected by userland environment variables, such as `PYTHONPATH`.
{#v0-0-0-added}
### Added
diff --git a/python/private/pypi/whl_library.bzl b/python/private/pypi/whl_library.bzl
index 2904f85..493f113 100644
--- a/python/private/pypi/whl_library.bzl
+++ b/python/private/pypi/whl_library.bzl
@@ -109,6 +109,10 @@
op = "GetPythonVersionForUnixCflags",
python = python_interpreter,
arguments = [
+ # Run the interpreter in isolated mode, this options implies -E, -P and -s.
+ # Ensures environment variables are ignored that are set in userspace, such as PYTHONPATH,
+ # which may interfere with this invocation.
+ "-I",
"-c",
"import sys; print(f'{sys.version_info[0]}.{sys.version_info[1]}', end='')",
],