bazel-contrib / bazel-contrib/rules_python
Bazel 7 namespace collision
- 主要语言
- Starlark
- 星标
- 688
- 派生
- 721
- 平均合并
- 15 小时 7 分钟
- 30 天内合并 PR
- 76
描述
# 🐞 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
贡献指南
调研方向
首先,使用报告中的 Bazel 测试命令和版本,通过 example/time/BUILD、example/time/__init__.py 和 example/time/py_test.py 重现该失败。跟踪 Python 测试的打包和导入方式,然后验证 time 命名空间冲突相关的行为,并确认最小复现不再引发报告的 ModuleNotFoundError。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- build-system
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 30/100