I have my directory structure like this:
root/
sift/
__init__.py
sift_descriptors.proto
sift_descriptors_pb2.py
project/
__init__.py
filtered_descriptors.proto
filtered_descriptors_pb2.py
filtered_descriptors_test.py
The root directory is in my $PYTHONPATH
.
I build root/sift/sift_descriptors_pb2.py
using protoc --python_out=./ sift_descriptors.proto
I build root/project/filtered_descriptors_pb2.py
using /cs/public/lib/pkg/protobuf/bin/protoc --proto_path=../sift --proto_path=./ --python_out=./ filtered_descriptors.proto
In filtered_descriptors.proto
, I use import "sift_descriptors.proto"
The problem is that in filtered_descriptors_pb2.py
(produced by protoc), there's a statement that just does this bare import: import sift_descriptors_pb2
, without reference via the module name as would be needed: from sift import sift_descriptors_pb2
.
What am I doing wrong?