I hadn't gotten anywhere, as I was having trouble figuring out how to even get started.  The py9p.Client class expects an fd and credentials, but its documentation is nonexistent, so I was a bit mystified about what fd and credentials I was supposed to pass in.  I had taken a quick look at cl.py, and it was creating a AF_INET socket, but P9P acme doesn't listen on an AF_INET socket.

Based on the replies, I took a look at the go code, a closer look at pyp9.Client and cl.py and did a little experimenting and discovered I just needed to create an AF_UNIX socket for /tmp/ns.$USER.$DISPLAY/acme and a 'trivial' py9p.Credentials object, and I've successfully called Client.stat and Client.ls, so I should be able to try doing something "real" now.

Skip and Bence, thanks for the hints.  I just needed a little nudge to get me past my mental block.

    - Peter Canning