2017-05-25 14 views
1

これは可能ですか? AFAICTそこには組み込みのpy_proto_libraryルールません、とのようなgenrule自分自身を使用しようとしている:py_binarydepsBazelでPythonのプロトコルバッファを構築する

genrule(
    name = "my_proto", 
    srcs = ["my.proto"], 
    outs = ["my_pb2.py", "my_pb2_grpc.py"], 
    cmd = "python -m grpc_tools.protoc --python_out=$(@D) --grpc_python_out=$(@D) $<" 
) 

する'//:my_proto' does not have mandatory provider 'py'.

+0

[問題8079](https://github.com/grpc/grpc/issues/8079)は、gRPC自体の正式なサポートを監視するための問題です。 –

答えて

2

で失敗それはあなたのような独自のプロトファイルを転がり正常に動作する必要がありますあなたがpy_binarysrcsdepsではなく)に追加するだけです。

depsは(あなたが好ましく、バイナリはその依存している場合は、またpy_libraryであなたの.pyをラップすることができ)のみpy_library秒間です。

+0

ああ、興味深いことに、ルールが 'srcs'属性に入ることを理解できませんでした。ソースファイルでなければならないと思いました。 'srcs'と' deps'の違いは何ですか? – Alec

+0

'srcs'はPythonソース(拡張子が.pyのファイル)のリストですので、genruleの出力が修飾されます。 'deps'は' py_library'sのリストであり、情報の小さな "パッケージ"です。たとえば、.csvファイルを読み込むライブラリがあるとします。 .pyソースとデータ.csvファイルに依存するpy_libraryを作成し、py_binaryがそのライブラリに依存する場合は、その.csvファイルについても知ることができます。 – kristina

関連する問題