That works for me.

Cheers,
alan

On Oct 28, 2:40 pm, "Kenton Varda" <[EMAIL PROTECTED]> wrote:
> The model used by the protocol compiler is to assume that the .proto files
> are located in a tree that parallels the Python package tree.  We don't want
> to get into relative imports because they can get complicated and
> error-prone.
> If you don't want to put your .proto files into a tree matching your Python
> package tree, you could alternatively map them into such a tree virtually
> like so:
>
> protoc --proto_path=mypkg=proto
>
> This maps the virtual directory "mypkg" to the physical directory "proto".
>  You would then have to write your imports like:
>
>   import "mypkg/a.proto"
>
> You can also map individual files.
>
> If this is insufficient then I guess we need a way to specify the python
> package explicitly in the .proto file, similar to the java_package option,
> rather than just inferring it from the location of the .proto file.
>
> On Tue, Oct 28, 2008 at 7:49 AM, Alan Kligman <[EMAIL PROTECTED]>wrote:
>
>
>
> > I need the line to look like:
>
> > from .. import a_pb2.py
>
> > The reason this is a problem is because I'm building the protocol
> > buffers into the middle of an existing project. The problem is that
> > protoc assumes that the output is either at the top of the package, or
> > that the related files are all in the same sub-package (which is
> > rarely true). Python2.5 supports relative intra-package imports (like
> > the one above). More details here:
> >http://docs.python.org/tut/node8.html#SECTION008420000000000000000.
>
> > I think this is probably worth fixing. The workaround is to do some
> > post-processing on the output from protoc, which could get nasty.
>
> > On Oct 27, 5:44 pm, "Kenton Varda" <[EMAIL PROTECTED]> wrote:
> > > I'm not sure I understand.  What would you expect the import line
> > importing
> > > a_pb2 to look like?  My understanding is that Python imports are
> > absolute,
> > > not relative to the importing file.
>
> > > On Sat, Oct 25, 2008 at 7:11 PM, Alan Kligman <[EMAIL PROTECTED]
> > >wrote:
>
> > > > I'm having a problem with protoc where python imports are not done
> > > > correctly. Here's the situation:
>
> > > > I have a directory structure like this:
>
> > > > proto/a.proto
> > > > proto/a/b.proto
> > > > proto/a/c.proto
>
> > > > a.proto provides some common definitions for both b.proto and c.proto.
> > > > I build the output like this:
>
> > > > protoc --proto_path=. --python_out=../dist *.proto
> > > > protoc --proto_path=. --python_out=../dist a/*.proto
>
> > > > assuming that proto is the current directory. Because a.proto is
> > > > included in both b.proto and c.proto, they both import it like this:
>
> > > > import "a.proto";    # relative to the current directory
>
> > > > After building the protobuf files with protoc, the resulting python
> > > > output has import statements for a_pb2.py that look like:
>
> > > > import a_pb2.py
>
> > > > which is wrong, because a_pb2.py is actually in the directory one
> > > > above b_pb2.py and c_pb2.py. Is there a way to get protoc to do this
> > > > properly? Is it a bug? Python2.5 handles relative imports, but there
> > > > is no nice way to do it in python2.4.
>
> > > > Thoughts?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to