Missing pip dependencies with venvs_site_packages=yes
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 38/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- python
- 领域
- build-system, testing
调研方向
从 py_test 规则开始,使用 venvs_site_packages=yes 重现 traceback 中描述的 logger_tests_py_test 失败。检查生成的虚拟环境以及 pytest、py、pluggy 和 iniconfig 的依赖处理;当 pytest 所需的传递性软件包始终存在且 target 成功运行时,该 issue 即完成。
由索引模型根据 Issue 内容生成。
描述
🐞 bug report
Affected Rule
The issue is caused by the rule: `py_test`Is this a regression?
NoDescription
Pip dependencies are missing for py_test targets.- Ex:
pytestpip package depends onpypip package. Addingpytestto thedepsforpy_testdoesn't include its transitive dependencies, e.g.py(and others). It does include some transitive dependencies though, e.g.pluggy - In the above example, adding
pyas an explicit dependency indepsfixes the problem as it gets included in the generated venv. However, this 'fix' doesn't work foriniconfig, another missing transitive dependency ofpytest- it doesn't get included in the venv
🔬 Minimal Reproduction
🔥 Exception or Error
Traceback (most recent call last):
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual_stage2_bootstrap.py", line 537, in
main()
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual_stage2_bootstrap.py", line 531, in main
_run_py_path(main_filename, args=sys.argv[1:])
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual_stage2_bootstrap.py", line 319, in _run_py_path
runpy.run_path(main_filename, run_name="__main__")
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/execroot/_main/external/rules_python++python+python_3_10_x86_64-unknown-linux-gnu/lib/python3.10/runpy.py", line 289, in run_path
return _run_module_code(code, init_globals, run_name,
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/execroot/_main/external/rules_python++python+python_3_10_x86_64-unknown-linux-gnu/lib/python3.10/runpy.py", line 96, in _run_module_co
de
_run_code(code, mod_globals, init_globals,
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/execroot/_main/external/rules_python++python+python_3_10_x86_64-unknown-linux-gnu/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/build_supp
ort/python/pytest_proxy.py", line 7, in
from pytest import console_main
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual.venv/lib/python3.10/site-packages/pytest/__init__.py", line 6, in
from _pytest.assertion import register_assert_rewrite
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual.venv/lib/python3.10/site-packages/_pytest/assertion/__init__.py", line 9, in
from _pytest.assertion import rewrite
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual.venv/lib/python3.10/site-packages/_pytest/assertion/rewrite.py", line 34, in
from _pytest.assertion import util
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual.venv/lib/python3.10/site-packages/_pytest/assertion/util.py", line 19, in
from _pytest.config import Config
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual.venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 45, in
from .findpaths import determine_setup
File "/scratch/nikolay_nikolov/.cache/bazel/_bazel_nikolay_nikolov/79bf5e678fbb2019f1e30944a206f079/sandbox/linux-sandbox/890/execroot/_main/bazel-out/k8-opt/bin/barrel/core/common/logger/logger_tests_py_test.runfiles/_main/barrel/cor
e/common/logger/_logger_tests_py_test_actual.venv/lib/python3.10/site-packages/_pytest/config/findpaths.py", line 12, in
import iniconfig
ModuleNotFoundError: No module named 'iniconfig'
🌍 Your Environment
Operating System:
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)
Release: 13
Codename: trixie
Output of bazel version:
Build label: 8.3.1
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Mon Jun 30 16:23:40 2025 (1751300620)
Build timestamp: 1751300620
Build timestamp as int: 1751300620
Rules_python version:
1.9.0
Anything else relevant?
No
- 主要语言
- Starlark
- 星标
- 690
- 派生
- 722
- 平均合并
- 1 天 55 分钟
- 30 天内合并 PR
- 38
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
bazel-contrib/rules_python 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
bazel-contrib/rules_python#4179 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
bazel-contrib/rules_python#4164 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
bazel-contrib/rules_python#3821 ·
-
难度 3/5 1-2 天 新手友好度 45/100
bazel-contrib/rules_python#4181 ·
-
Release 2.4.0 未关闭type: release
难度 4/5 3-5 天 新手友好度 25/100
bazel-contrib/rules_python#4175 · 3 条评论 ·
查看 bazel-contrib/rules_python 的全部 Issue
相似的 Issue
-
typst-0.12 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
commercialhaskell/stackage#8127 ·
-
bug build
难度 1/5 1 小时以内 新手友好度 91/100
facebookincubator/velox#19194 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
-
agentic-workflows maintenance
难度 2/5 1-3 小时 新手友好度 85/100
-
难度 2/5 1-3 小时 新手友好度 72/100
nebari-dev/jhub-apps#742 ·