bazel-contrib / bazel-contrib/rules_python
Cannot use `runfiles.python` import path when running `bazel coverage`
- Lingua principale
- Starlark
- Stelle
- 688
- Fork
- 721
- Merge medio
- 15h 7m
- PR unite (30g)
- 76
Descrizione
# 🐞 bug report
### Affected Rule
compile_pip_requirements
### Is this a regression?
Not sure.
### Description
In some situations it is possible to get a conflict between the python module from the coverage package and the python package from the runfiles library. I would say this is due to the slightly risky use of "python" as a module/package name and the import `from python.runfiles import runfiles` in dependency_resolver.py.
## 🔬 Minimal Reproduction
```
cd examples/multi_python_versions
bazel coverage --incompatible_default_to_explicit_init_py //requirements:requirements_3_10_test
```
## 🔥 Exception or Error
```
michaelboyd multi_python_versions $ bazel coverage --incompatible_default_to_explicit_init_py //requirements:requirements_3_10_test
INFO: Using default value for --instrumentation_filter: "^//requirements[/:]".
INFO: Override the above default with --instrumentation_filter
INFO: Analyzed target //requirements:requirements_3_10_test (0 packages loaded, 0 targets configured).
FAIL: //requirements:requirements_3_10_test (see /private/var/tmp/_bazel_michaelboyd/52019027f6106b6e52388536c05b77eb/execroot/_main/bazel-out/darwin_arm64-fastbuild-ST-eaf12dacd369/testlogs/requirements/requirements_3_10_test/test.log)
INFO: From Testing //requirements:requirements_3_10_test:
==================== Test output for //requirements:requirements_3_10_test:
Traceback (most recent call last):
File "/private/var/tmp/_bazel_michaelboyd/52019027f6106b6e52388536c05b77eb/execroot/_main/bazel-out/darwin_arm64-fastbuild-ST-eaf12dacd369/bin/requirements/requirements_3_10_test.runfiles/rules_python~/python/private/pypi/dependency_resolver/dependency_resolver.py", line 28, in
from python.runfiles import runfiles
ModuleNotFoundError: No module named 'python.runfiles'; 'python' is not a package
```
## 🌍 Your Environment
**Operating System:**
MacOS
**Output of `bazel version`:**
Bazelisk version: development
Build label: 7.2.0
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Mon Jun 10 13:04:55 2024 (1718024695)
Build timestamp: 1718024695
Build timestamp as int: 1718024695
**Rules_python version:**
Tested on main: ea49937782fb0b969c72625f3b397f4bab53d412
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia eseguendo `bazel coverage --incompatible_default_to_explicit_init_py //requirements:requirements_3_10_test` da `examples/multi_python_versions`. Leggi `rules_python~/python/private/pypi/dependency_resolver/dependency_resolver.py`, in particolare l’import `from python.runfiles import runfiles`, e controlla il log di test segnalato. Il lavoro è completato quando il comando di coverage termina senza l’errore di importazione `python.runfiles`.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- build-system, testing
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 55/100