Open lilothar opened 4 months ago
how to import protobuf generations?
@lilothar Try: import test_pb2
@elisbyberi I have try that, but raise error too
test_pb2.py:5:4-23: error: cannot import name 'version_info' from 'sys'
test_pb2.py:6:6-30: error: no module named 'google.protobuf.internal'
test_pb2.py:7:6-21: error: no module named 'google.protobuf'
test_pb2.py:8:6-21: error: no module named 'google.protobuf'
test_pb2.py:9:6-21: error: no module named 'google.protobuf'
test_pb2.py:10:6-21: error: no module named 'google.protobuf'
test_pb2.py:13:11-37: error: no module named '_symbol_database'
another example that define a class A,
class A:
x: int
def __init__(self, x):
self.x = x
codon test file: a_test.codon
from python import ftest
print(ftest.A(1).x)
codon run a_test.codon will run ok if define a as
class A:
def __init__(self, y: int):
self.x: int = y
this will case the same type error with using protobuf as bellow
error: 'pyobj' object has no attribute 'x'
I guss if I want to import a python class, I should definitely define the data member with type in python, thus to protobuf, I need to write same plugin to regenerate the code as required or same proxy to adapter it?
@lilothar Refer to: https://docs.exaloop.io/codon/interoperability/python for information on how to work with the google.protobuf library. TL;DR: You have to import it from Python using from python import [specific_module]
Note that a 'Python module' is a pip-installed Python module (importable from the Python runtime). If you want to import a Python script (from the same directory), you can simply use import script_file
.
@elisbyberi I have try that method, but no effect and raise
test_pb2.py:5:4-23: error: cannot import name 'version_info' from 'sys'
test_pb2.py:6:6-30: error: no module named 'google.protobuf.internal'
test_pb2.py:7:6-21: error: no module named 'google.protobuf'
test_pb2.py:8:6-21: error: no module named 'google.protobuf'
test_pb2.py:9:6-21: error: no module named 'google.protobuf'
test_pb2.py:10:6-21: error: no module named 'google.protobuf'
test_pb2.py:13:11-37: error: no module named '_symbol_database'
``` error
defines
test.proto
run generation cmd
protoc ./test.proto --python_out=./
write proto.codon
run
codon run proto.codon