jorgebastida / jorgebastida/awslogs
expat dependency issue (?) / homebrew install / 0.15.0
- Dominant language
- Python
- Stars
- 5k
- Forks
- 342
- PR merge metrics
- No merged PRs in 30d
Description
```
You've found a bug! Please, raise an issue attaching the following traceback
https://github.com/jorgebastida/awslogs/issues/new
Version: 0.15.0
Python: 3.14.4 (main, Apr 7 2026, 13:13:20) [Clang 21.0.0 (clang-2100.0.123.102)]
boto3 version: 1.42.24
Platform: Darwin-25.0.0-arm64-arm-64bit-Mach-O
Args: ['/opt/homebrew/bin/awslogs', 'groups', '--profile', 'collectionspace']
Config: {options}
Traceback (most recent call last):
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/etree/ElementTree.py", line 1532, in __init__
from xml.parsers import expat
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/parsers/expat.py", line 4, in
from pyexpat import *
ImportError: dlopen(/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so, 0x0002): Symbol not found: _XML_SetAllocTrackerActivationThreshold
Referenced from: <1AAB1AFF-0B6A-3B67-86F5-A72CB69F8B1B> /opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so
Expected in: <4B473812-533A-3FD9-BA8B-D53CF5581C92> /usr/lib/libexpat.1.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/etree/ElementTree.py", line 1535, in __init__
import pyexpat as expat
ImportError: dlopen(/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so, 0x0002): Symbol not found: _XML_SetAllocTrackerActivationThreshold
Referenced from: <1AAB1AFF-0B6A-3B67-86F5-A72CB69F8B1B> /opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/lib-dynload/pyexpat.cpython-314-darwin.so
Expected in: <4B473812-533A-3FD9-BA8B-D53CF5581C92> /usr/lib/libexpat.1.dylib
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/awslogs/bin.py", line 210, in main
getattr(logs, options.func)()
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/awslogs/core.py", line 226, in list_groups
for group in self.get_groups():
~~~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/awslogs/core.py", line 240, in get_groups
for page in paginator.paginate(**kwargs):
~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/paginate.py", line 272, in __iter__
response = self._make_request(current_kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/paginate.py", line 360, in _make_request
return self._method(**current_kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 602, in _api_call
return self._make_api_call(operation_name, kwargs)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1060, in _make_api_call
http, parsed_response = self._make_request(
~~~~~~~~~~~~~~~~~~^
operation_model, request_dict, request_context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1084, in _make_request
return self._endpoint.make_request(operation_model, request_dict)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 119, in make_request
return self._send_request(request_dict, operation_model)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 196, in _send_request
request = self.create_request(request_dict, operation_model)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 132, in create_request
self._event_emitter.emit(
~~~~~~~~~~~~~~~~~~~~~~~~^
event_name,
^^^^^^^^^^^
request=request,
^^^^^^^^^^^^^^^^
operation_name=operation_model.name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/hooks.py", line 412, in emit
return self._emitter.emit(aliased_event_name, **kwargs)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/hooks.py", line 256, in emit
return self._emit(event_name, kwargs)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/hooks.py", line 239, in _emit
response = handler(**kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/signers.py", line 108, in handler
return self.sign(operation_name, request)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/signers.py", line 191, in sign
auth = self.get_auth_instance(**kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/signers.py", line 312, in get_auth_instance
frozen_credentials = credentials.get_frozen_credentials()
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 697, in get_frozen_credentials
self._refresh()
~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 584, in _refresh
self._protected_refresh(is_mandatory=is_mandatory_refresh)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 600, in _protected_refresh
metadata = self._refresh_using()
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 750, in fetch_credentials
return self._get_cached_credentials()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 760, in _get_cached_credentials
response = self._get_credentials()
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/credentials.py", line 920, in _get_credentials
response = client.assume_role(**kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 602, in _api_call
return self._make_api_call(operation_name, kwargs)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1060, in _make_api_call
http, parsed_response = self._make_request(
~~~~~~~~~~~~~~~~~~^
operation_model, request_dict, request_context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/client.py", line 1084, in _make_request
return self._endpoint.make_request(operation_model, request_dict)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 119, in make_request
return self._send_request(request_dict, operation_model)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 197, in _send_request
success_response, exception = self._get_response(
~~~~~~~~~~~~~~~~~~^
request, operation_model, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 239, in _get_response
success_response, exception = self._do_get_response(
~~~~~~~~~~~~~~~~~~~~~^
request, operation_model, context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/endpoint.py", line 313, in _do_get_response
parsed_response = parser.parse(
response_dict, operation_model.output_shape
)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 267, in parse
parsed = self._do_parse(response, shape)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 613, in _do_parse
return self._parse_body_as_xml(response, shape, inject_metadata=True)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 617, in _parse_body_as_xml
root = self._parse_xml_string_to_dom(xml_contents)
File "/opt/homebrew/Cellar/awslogs/0.15.0_4/libexec/lib/python3.14/site-packages/botocore/parsers.py", line 539, in _parse_xml_string_to_dom
parser = ETree.XMLParser(
target=ETree.TreeBuilder(), encoding=self.DEFAULT_ENCODING
)
File "/opt/homebrew/Cellar/python@3.14/3.14.4/Frameworks/Python.framework/Versions/3.14/lib/python3.14/xml/etree/ElementTree.py", line 1537, in __init__
raise ImportError(
"No module named expat; use SimpleXMLTreeBuilder instead"
)
ImportError: No module named expat; use SimpleXMLTreeBuilder instead
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce `awslogs groups --profile collectionspace` with Python 3.14.4 installed through Homebrew and compare the traceback's `pyexpat`/libexpat failure with the project's packaging and installation setup. Done means the command can parse the AWS response and list groups without the expat import error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100