Sure, in fact I first saw this error yesterday after having built off HEAD.
To narrow things down, I devised and ran a simple experiment to determine which versions of things are being troublesome.
-
venv2
is Python 2.7.11+ -
venv3
is Python 3.5.1+ -
grpc_python_plugin-0.14.1
is grpc v0.14.1 -
grpc_python_plugin-master
is grpc HEAD@fa9b7c1bc6488be17d18007f45c57dac39ea5b79 (today is 2016-06-15)
(Note: grpc is always built from source)
root@d732fe4c214d:/# . venv2/bin/activate
(venv2) root@d732fe4c214d:/# protoc --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=$(command -v grpc_python_plugin-0.14.1) *.proto
(venv2) root@d732fe4c214d:/# ./rg_src.py &
[1] 24098
(venv2) root@d732fe4c214d:/# ./rg_cli.py
-------------- GetFeature --------------
Feature called Berkshire Valley Management Area Trail, Jefferson, NJ, USA at latitude: 409146138
longitude: -746188906
Found no feature at
-------------- ListFeatures --------------
Looking for features between 40, -75 and 42, -73
...
Python2 + grpc v0.14.1: OK
root@d732fe4c214d:/# . venv3/bin/activate
(venv3) root@d732fe4c214d:/# protoc --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=$(command -v grpc_python_plugin-0.14.1) *.proto
(venv3) root@d732fe4c214d:/# ./rg_srv.py
(venv3) root@d732fe4c214d:/# ./rg_srv.py &
[1] 24180
(venv3) root@d732fe4c214d:/# ./rg_cli.py
-------------- GetFeature --------------
Traceback (most recent call last):
File "./rg_cli.py", line 138, in <module>
run()
File "./rg_cli.py", line 128, in run
guide_get_feature(stub)
File "./rg_cli.py", line 67, in guide_get_feature
guide_get_one_feature(stub, route_guide_pb2.Point(latitude=409146138, longitude=-746188906))
File "./rg_cli.py", line 55, in guide_get_one_feature
feature = stub.GetFeature(point, _TIMEOUT_SECONDS)
File "/venv3/lib/python3.5/site-packages/grpc/framework/crust/implementations.py", line 75, in __call__
protocol_options, metadata, request)
File "/venv3/lib/python3.5/site-packages/grpc/framework/crust/_calls.py", line 109, in blocking_unary_unary
return next(rendezvous)
File "/venv3/lib/python3.5/site-packages/grpc/framework/crust/_control.py", line 409, in __next__
return self.next()
File "/venv3/lib/python3.5/site-packages/grpc/framework/crust/_control.py", line 415, in next
raise self._termination.abortion_error
grpc.framework.interfaces.face.face.LocalError: LocalError(code=StatusCode.UNIMPLEMENTED, details="b'Method "b\'GetFeature\'" of service "b\'routeguide.RouteGuide\'" not implemented!'")
Python3 + grpc v0.14.1: BROKEN
root@d732fe4c214d:/# . venv2/bin/activate
(venve) root@d732fe4c214d:/# protoc --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=$(command -v grpc_python_plugin-master) *.proto
(venv2) root@d732fe4c214d:/# ./rg_srv.py &
[1] 24201
(venve2) root@d732fe4c214d:/# ./rg_cli.py
-------------- GetFeature --------------
Feature called Berkshire Valley Management Area Trail, Jefferson, NJ, USA at latitude: 409146138
longitude: -746188906
Found no feature at
-------------- ListFeatures --------------
Looking for features between 40, -75 and 42, -73
Feature called Patriots Path, Mendham, NJ 07945, USA at latitude: 407838351
longitude: -746143763
Feature called 101 New Jersey 10, Whippany, NJ 07981, USA at latitude: 408122808
longitude: -743999179
...
Python2 + grpc HEAD@fa9b7c1b: OK
root@d732fe4c214d:/# . venv3/bin/activate
(venv3) root@d732fe4c214d:/# protoc --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=$(command -v grpc_python_plugin-master) *.proto
(venv3) root@d732fe4c214d:/# ./rg_srv.py &
[1] 24234
(venv3) root@d732fe4c214d:/# ./rg_cli.py
-------------- GetFeature --------------
Traceback (most recent call last):
File "./rg_cli.py", line 138, in <module>
run()
File "./rg_cli.py", line 128, in run
guide_get_feature(stub)
File "./rg_cli.py", line 67, in guide_get_feature
guide_get_one_feature(stub, route_guide_pb2.Point(latitude=409146138, longitude=-746188906))
File "./rg_cli.py", line 55, in guide_get_one_feature
feature = stub.GetFeature(point, _TIMEOUT_SECONDS)
File "/venv/lib/python3.5/site-packages/grpc/framework/crust/implementations.py", line 75, in __call__
protocol_options, metadata, request)
File "/venv/lib/python3.5/site-packages/grpc/framework/crust/_calls.py", line 109, in blocking_unary_unary
return next(rendezvous)
File "/venv/lib/python3.5/site-packages/grpc/framework/crust/_control.py", line 409, in __next__
return self.next()
File "/venv/lib/python3.5/site-packages/grpc/framework/crust/_control.py", line 415, in next
raise self._termination.abortion_error
grpc.framework.interfaces.face.face.LocalError: LocalError(code=StatusCode.UNIMPLEMENTED, details="b'Method "b\'GetFeature\'" of service "b\'routeguide.RouteGuide\'" not implemented!'")
Python3 + grpc HEAD@fa9b7c1b: BROKEN
Python version | Grpc version | Outcome of GRPC functionality |
---|---|---|
Python 2 | grpc v0.14.1 | OK |
Python 3 | grpc v0.14.1 | BROKEN |
Python 2 | grpc HEAD@fa9b7c1b | OK |
Python 3 | grpc HEAD@fa9b7c1b | BROKEN |
So, python3 is not working for me regardless of which version of grpc_python_plugin
is in play.
Python2 pip freeze
output:
(venv2) root@d732fe4c214d:/# pip freeze
Cython==0.24
enum34==1.1.6
futures==3.0.5
grpcio==0.14.0
pkg-resources==0.0.0
protobuf==3.0.0b3
six==1.10.0
Python3 pip freeze
output:
(venv3) root@d732fe4c214d:/# pip freeze
Cython==0.24
enum34==1.1.6
futures==3.0.5
grpcio==0.14.0
pkg-resources==0.0.0
protobuf==3.0.0b3
six==1.10.0