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
- 主要语言
- Starlark
- 星标
- 688
- 派生
- 721
- 平均合并
- 15 小时 7 分钟
- 30 天内合并 PR
- 76
描述
# 🐞 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.
贡献指南
调研方向
从链接的最小复现开始,重点检查 bin.py 和 lib.py,使用 rules_python 2.0.0 或 2.0.1,以及报告中的 Windows Bazel 设置。跟踪 py_binary 和 py_library 如何构建 runfiles 导入路径,然后添加一个涵盖根目录 lib.py 导入的回归测试,并确认该示例不再将 lib 解析为生成的环境包。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- build-system
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 55/100