2017-10-14 16 views
0

IntelliJ IDEA에서 생성 된 protobuf 소스를 파이썬으로 인식하는 데 어려움을 겪고 있습니다.IntelliJ IDEA에서 바젤 생성 파이썬 protobufs를 인식하는 방법은 무엇입니까?

나는 하나 개의 프로토 파일, 하나 개의 파이썬 파일이, 빌드 파일 :

$ 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) 
가 킬로그램에 대한

파이썬 클래스가 생성됩니다

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

내 파이썬 스크립트 수입은 protobuf위한 파이썬 클래스를 생성 이 방법 :

$ 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 일에 공개되어야합니다.