bazel-contrib / bazel-contrib/rules_python
Starting from version 2.0.0 is no longer allowed to have a package called lib in the root
- Vorherrschende Sprache
- Starlark
- Sterne
- 688
- Forks
- 721
- Ø Merge
- 15 Std. 7 Min.
- Gemergte PRs (30 T.)
- 76
Beschreibung
# 🐞 bug report
### Affected Rule
py_binary + py_library
### Is this a regression?
Yes, it started with 2.0.0, before that the problem was not there
### Description
It is no longer possible to have a `lib.py` in the root and import it.
It seems that this colides now with some lib that is in the path. This was before not the case.
Considering that lib is not a Python library, I would not have expected having any colision.
## 🔬 Minimal Reproduction
You can grab this example and upgrade to rules_python 2.0.0
https://github.com/limdor/bazel-examples/tree/v1.8.0/python
## 🔥 Exception or Error
```
Traceback (most recent call last):
File "c:\b\t45fapsg\execroot\_main\bazel-out\x64_windows-fastbuild-st-591ff087943d\bin\bin.exe.runfiles\_main\_bin_stage2_bootstrap.py", line 541, in
main()
File "c:\b\t45fapsg\execroot\_main\bazel-out\x64_windows-fastbuild-st-591ff087943d\bin\bin.exe.runfiles\_main\_bin_stage2_bootstrap.py", line 535, in main
_run_py_path(main_filename, args=sys.argv[1:])
File "c:\b\t45fapsg\execroot\_main\bazel-out\x64_windows-fastbuild-st-591ff087943d\bin\bin.exe.runfiles\_main\_bin_stage2_bootstrap.py", line 323, in _run_py_path
runpy.run_path(main_filename, run_name="__main__")
File "", line 291, in run_path
File "", line 98, in _run_module_code
File "", line 88, in _run_code
File "c:\b\t45fapsg\execroot\_main\bazel-out\x64_windows-fastbuild-st-591ff087943d\bin\bin.exe.runfiles\_main\bin.py", line 1, in
from lib import sum
ImportError: cannot import name 'sum' from 'lib' (C:\temp\bazel._bin.venv.l8l95vit\lib\__init__.py)
bazel run failed with exit code 1
```
## 🌍 Your Environment
**Operating System:**
Windows
**Output of `bazel version`:**
8.7.0
**Rules_python version:**
2.0.0 as well as 2.0.1
**Anything else relevant?**
That is not a big issue for me, I workaround the problem my renaming `lib.py` to `my_lib.py`. However the bigger question would be what are the names that can have problems and the ones that not? I could have imagine names from the Python standard library to have problems with it but afaik lib is not one of them.
Beitragsleitfaden
Rechercherichtung
Start with the linked minimal reproduction, especially bin.py and lib.py, using rules_python 2.0.0 or 2.0.1 and the reported Windows Bazel setup. Trace how py_binary and py_library construct the runfiles import path, then add a regression test covering a root lib.py import and confirm the example no longer resolves lib to the generated environment package.
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
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 55/100