我经常想检查一些tensorflow模块的源代码。通常,API的很大一部分是用本机python编写的,相关文件很容易在github上找到。但是,我用C ++编写了一些重要的部分,我找不到它们的源代码。例如,根据官方TensorFlow文档,大多数数学运算在tensorflow/python/ops/gen_math_ops.py
中定义。但是,GitHub上没有这样的文件。我本地安装的TF有这个文件,但检查GitHub上的源代码要容易得多。我还想了解我应该在哪里搜索指定如何生成python文件的规则。如果这是一个愚蠢的问题,我很抱歉,但我对bazel并不熟悉。
答案 0 :(得分:2)
我还想了解我应该在哪里搜索指定如何生成python文件的规则。
使用bazel query
。
如果您想知道哪个规则生成文件(例如$PROJECT/some/dir/file.py
),请从项目根目录运行此命令:
bazel query --output=build some/dir/file.py
例如,如果我想知道哪个规则生成特定的jar
文件,bazel query
会打印出来:
$ bazel query --output=build examples/java-native/src/test/java/com/example/myproject/hello.jar
# /Users/foo/bazel/examples/java-native/src/test/java/com/example/myproject/BUILD:1:1
java_test(
name = "hello",
deps = ["//examples/java-native/src/main/java/com/example/myproject:hello-lib", "//third_party:junit4"],
srcs = ["//examples/java-native/src/test/java/com/example/myproject:TestHello.java"],
test_class = "com.example.myproject.TestHello",
)
查看Query how-to documentation page了解更多bazel query
提示。