У меня есть два git репозитория с кодом python.
https://github.com/SurferJeffAtGoogle/synthtool/tree/bazel содержит две цели сборки:
~/gitrepos/synthtool$ bazel query ...
//tests:synthtool_test
//synthtool:synthtool
https://github.com/SurferJeffAtGoogle/nodejs-vision/tree/bazel содержит одну цель сборки:
~/gitrepos/nodejs-vision$ bazel query ...
//:synth
//tests:synthtool_test
и //:synth
оба зависят от //synthtool:synthtool
.
Я могу запустить тест, и тестовый код успешно импортируется synthtool
:
~/gitrepos/synthtool$ bazel test ...
INFO: Analyzed 2 targets (4 packages loaded, 230 targets configured).
INFO: Found 1 target and 1 test target...
INFO: Elapsed time: 7.477s, Critical Path: 7.07s
INFO: 2 processes: 2 linux-sandbox.
INFO: Build completed successfully, 3 total actions
//tests:synthtool_test PASSED in 7.0s
Executed 1 out of 1 test: 1 test passes.
Однако, когда я пытаюсь запустить //:synth
, он не может импортировать synthtool
:
~/gitrepos/nodejs-vision$ bazel run //:synth
Starting local Bazel server and connecting to it...
INFO: Analyzed target //:synth (17 packages loaded, 272 targets configured).
INFO: Found 1 target...
INFO: Deleting stale sandbox base /usr/local/google/home/rennie/.cache/bazel/_bazel_rennie/dadb642c5feb5ae86ab3
1dcb8a48c54a/sandbox
Target //:synth up-to-date:
bazel-bin/synth
INFO: Elapsed time: 2.555s, Critical Path: 0.03s
INFO: 0 processes.
INFO: Build completed successfully, 1 total action
INFO: Build completed successfully, 1 total action
Traceback (most recent call last):
File "/usr/local/google/home/rennie/.cache/bazel/_bazel_rennie/dadb642c5feb5ae86ab31dcb8a48c54a/execroot/nodejs_vision/bazel-out/k8-fastbuild/bin/synth.runfiles/nodejs_vision/synth.py", line 18, in <module>
import synthtool.gcp as gcp
ModuleNotFoundError: No module named 'synthtool.gcp'
rennie@rennie:~/gitrepos/nodejs-vision$
Обе цели имеют одинаковую строку кода:
import synthtool.gcp as gcp
Это успешно для тестов, но не для //:synth.
Я вижу, что нужные файлы были выбраны и попали в каталоги вывода Blaze, но synth.py не удается импортируйте их:
~/gitrepos/nodejs-vision$ find -L bazel-* -name gcp
bazel-bin/synth.runfiles/nodejs_vision/external/synthtool/synthtool/gcp
bazel-bin/synth.runfiles/synthtool/synthtool/gcp
bazel-nodejs-vision/external/synthtool/synthtool/gcp
bazel-nodejs-vision/bazel-out/k8-fastbuild/bin/synth.runfiles/nodejs_vision/external/synthtool/synthtool/gcp
bazel-nodejs-vision/bazel-out/k8-fastbuild/bin/synth.runfiles/synthtool/synthtool/gcp
bazel-out/k8-fastbuild/bin/synth.runfiles/nodejs_vision/external/synthtool/synthtool/gcp
bazel-out/k8-fastbuild/bin/synth.runfiles/synthtool/synthtool/gcp
Почему это так? Как мне это исправить?