Declare 'google' namespace when importing Python protobuf via Bazel.

`python/google/__init__.py` declares the top-level 'google' namespace so that
`google.protobuf` can be imported alongside other Google Python modules like
`google.auth`.

This works well when installing protobuf via Pip, but the Bazel `//:python_srcs`
rule doesn't include this file in its `srcs`. Bazel implicitly creates an empty
`google/__init__.py`, which does *not* set up a namespace. The result is that
consuming Python protobuf via Bazel breaks all other Google Python libraries.

This fixes #4658.
This commit is contained in:
Calder Coalson 2018-05-21 15:33:43 -07:00
parent ce57cccef9
commit 142cbe0d57

1
BUILD
View File

@ -640,6 +640,7 @@ py_library(
name = "python_srcs",
srcs = glob(
[
"python/google/__init__.py",
"python/google/protobuf/*.py",
"python/google/protobuf/**/*.py",
],