2017-10-14 241 views
0

我很難讓IntelliJ IDEA識別python中生成的protobuf源代碼。如何讓IntelliJ IDEA識別bazel生成的python protobufs?

我有一個原型文件,一個Python文件,並建立檔案:

$ find -type f 
./WORKSPACE 
./src/proto/BUILD 
./src/proto/mymessage.proto 
./src/python/foo/BUILD 
./src/python/foo/foo.py 

我的Python腳本導入生成的Python類的protobuf的:

$ cat src/python/foo/foo.py 
from src.proto import mymessage_pb2 

message = mymessage_pb2.MyMessage() 
message.my_field = "Hello world!" 

print(message.my_field) 
產生

爲原Python類這樣:

$ cat src/proto/BUILD 
package(default_visibility = ["//visibility:public"]) 

genrule(
    name = "gen_mymessage_py_proto", 
    srcs = ["mymessage.proto"], 
    outs = ["mymessage_pb2.py"], 
    cmd = "protoc $(location mymessage.proto) --python_out=$(GENDIR) ", 
) 

py_library(
    name = "mymessage_py_proto", 
    srcs = [":gen_mymessage_py_proto"], 
) 

Bazel按預期運行一切:

$ bazel run src/python/foo:foo 
INFO: Analysed target //src/python/foo:foo (16 packages loaded). 
INFO: Found 1 target... 
Target //src/python/foo:foo up-to-date: 
    bazel-bin/src/python/foo/foo 
INFO: Elapsed time: 0.525s, Critical Path: 0.05s 
INFO: Build completed successfully, 5 total actions 

INFO: Running command line: bazel-bin/src/python/foo/foo 
Hello world! 

不過的IntelliJ無法識別進口: IntelliJ fails to recognize generated proto import

我能做些什麼使的IntelliJ認識到這一點的進口?

+0

提交了bazel intellij插件的錯誤:https://github.com/bazelbuild/intellij/issues/144 –

回答

0

Bazel不支持解析genfile導入。這已被固定爲issues/144的一部分。該修補程序應該在11月3日發佈。

相關問題