bazel-contrib / bazel-contrib/rules_python

`PIP_REQUIRE_VIRTUALENV` breaks installation of dependencies from `.tar.gz` URIs

Offen
#3,138 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
help wanted type: pip
Vorherrschende Sprache
Starlark
Sterne
688
Forks
721
Ø Merge
15 Std. 7 Min.
Gemergte PRs (30 T.)
76

Beschreibung

# 🐞 bug report

### Affected Rule

This might be related to how `wheel_installer` is invoked.

### Is this a regression?

No, 1.4.1 and https://github.com/bazel-contrib/rules_python/pull/3115 (commit https://github.com/bazel-contrib/rules_python/commit/75871bbb9b33723c60565de0d7959c3262f87337) have this problem. 1.5.0 and 1.5.1 likely also have this problem, but I can't confirm since `.tar.gz` installation is broken in those releases (see #3131).

### Description

Running a `py_test` target with `PIP_REQUIRE_VIRTUALENV` set to `true` results in errors if one of the dependencies is installed from a `.tar.gz` URI.
Adding `common --action_env PIP_REQUIRE_VIRTUALENV=false` to `.bazelrc` can be used as a workaround.

## 🔬 Minimal Reproduction

`export PIP_REQUIRE_VIRTUALENV=true` in the shell. Then follow the minimal reproduction steps in #3131 but for `rules_python` 1.4.1 or https://github.com/bazel-contrib/rules_python/pull/3115 (commit https://github.com/bazel-contrib/rules_python/commit/75871bbb9b33723c60565de0d7959c3262f87337). 1.5.0 and 1.5.1 would fail with a different error due to #3131.

## 🔥 Exception or Error

  error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 3
╰─> [1 lines of output]
ERROR: Could not find an activated virtualenv (required).
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 3
╰─> See above for output.

## 🌍 Your Environment

**Operating System:**

  

Linux

**Output of `bazel version`:**

  

Bazelisk version: development
Build label: 8.1.1
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Tue Feb 25 18:50:42 2025 (1740509442)
Build timestamp: 1740509442
Build timestamp as int: 1740509442

**Rules_python version:**

  

1.4.1, 75871bbb9b33723c60565de0d7959c3262f87337

**Anything else relevant?**

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start with the minimal reproduction steps referenced in #3131, using rules_python 1.4.1 and PIP_REQUIRE_VIRTUALENV=true. Inspect how wheel_installer is invoked for a .tar.gz dependency; done means a py_test target installs that dependency successfully without requiring the .bazelrc workaround.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
build-system
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.