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
- Lingua principale
- Starlark
- Stelle
- 688
- Fork
- 721
- Merge medio
- 15h 7m
- PR unite (30g)
- 76
Descrizione
# 🐞 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.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- build-system
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 55/100