bazel-contrib / bazel-contrib/rules_python
Bazel 7 namespace collision
- Vorherrschende Sprache
- Starlark
- Sterne
- 688
- Forks
- 721
- Ø Merge
- 15 Std. 7 Min.
- Gemergte PRs (30 T.)
- 76
Beschreibung
# 🐞 bug report
with rules_python 0.31.0 and bazel 7.1.2, there seems to be an issue with naming certain directories with certain names. Wondering if this is expected?
### Description
There is a namespace collision with certain directories
## 🔬 Minimal Reproduction
Build file
example/time/BUILD
```
load("@rules_python//python:defs.bzl", "py_test", "py_library")
py_library(
name = "time_py",
srcs = ["py_test.py"],
)
py_test(
main = "py_test.py",
srcs = [":time_py"],
)
```
`example/time/__init__.py`
```
import time
```
`example/time/py_test.py`
```
import time
```
bazel test //example/time:all --noincompatible_default_to_explicit_init_py will result in an import error
## 🔥 Exception or Error
```
ImportError while importing test module
Hint: make sure your test modules/packages have valid Python names.
Traceback:
../pip_pytest/site-packages/_pytest/python.py:617: in _importtestmodule
mod = import_path(self.path, mode=importmode, root=self.config.rootpath)
../pip_pytest/site-packages/_pytest/pathlib.py:564: in import_path
importlib.import_module(module_name)
/home/ryang/.cache/bazel/_bazel_ryang/7071f3e24af240fa9a28f67dc16192b3/execroot/waabi-av/external/python3/lib/python310.zip/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
:1050: in _gcd_import
???
:1027: in _find_and_load
???
:1001: in _find_and_load_unlocked
???
E ModuleNotFoundError: No module named 'time.py_test'; 'time' is not a package
```
## 🌍 Your Environment
**Operating System:**
ubuntu 20.04
**Output of `bazel version`:**
7.1.2
**Rules_python version:**
0.31.0
Beitragsleitfaden
Rechercherichtung
Start by reproducing the failure with example/time/BUILD, example/time/__init__.py, and example/time/py_test.py using the reported Bazel test command and versions. Trace how the Python test is packaged and imported, then verify the behavior around the time namespace collision and confirm that the minimal reproduction no longer raises the reported ModuleNotFoundError.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- build-system
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100