Dependency issue with protobuf 3.20.2 on M1 macs
Default install will currently pull protobuf 3.20.2, but on M1 macs this currently breaks when running logan with:
Traceback (most recent call last):
File "/opt/homebrew/bin/logan", line 33, in <module>
sys.exit(load_entry_point('logan', 'console_scripts', 'logan')())
File "/opt/homebrew/bin/logan", line 25, in importlib_load_entry_point
return next(matches).load()
File "/opt/homebrew/Cellar/python@3.10/3.10.6_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
module = import_module(match.group('module'))
File "/opt/homebrew/Cellar/python@3.10/3.10.6_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/path/to/logan/logan/tool.py", line 19, in <module>
from google.cloud import kms
File "/opt/homebrew/lib/python3.10/site-packages/google/cloud/kms.py", line 20, in <module>
from google.cloud.kms_v1 import KeyManagementServiceClient
File "/opt/homebrew/lib/python3.10/site-packages/google/cloud/kms_v1/__init__.py", line 22, in <module>
from google.cloud.kms_v1 import types
File "/opt/homebrew/lib/python3.10/site-packages/google/cloud/kms_v1/types.py", line 21, in <module>
from google.api_core.protobuf_helpers import get_messages
File "/opt/homebrew/lib/python3.10/site-packages/google/api_core/protobuf_helpers.py", line 22, in <module>
from google.protobuf import field_mask_pb2
File "/opt/homebrew/lib/python3.10/site-packages/google/protobuf/field_mask_pb2.py", line 5, in <module>
from google.protobuf.internal import builder as _builder
File "/opt/homebrew/lib/python3.10/site-packages/google/protobuf/internal/builder.py", line 42, in <module>
from google.protobuf import reflection as _reflection
File "/opt/homebrew/lib/python3.10/site-packages/google/protobuf/reflection.py", line 51, in <module>
from google.protobuf import message_factory
File "/opt/homebrew/lib/python3.10/site-packages/google/protobuf/message_factory.py", line 43, in <module>
from google.protobuf import descriptor_pool
File "/opt/homebrew/lib/python3.10/site-packages/google/protobuf/descriptor_pool.py", line 63, in <module>
from google.protobuf import descriptor
File "/opt/homebrew/lib/python3.10/site-packages/google/protobuf/descriptor.py", line 47, in <module>
from google.protobuf.pyext import _message
ImportError: dlopen(/opt/homebrew/lib/python3.10/site-packages/google/protobuf/pyext/_message.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace (__ZN6google8protobuf15FieldDescriptor12TypeOnceInitEPKS1_)
workaround is to install protobuf==3.20.1
.