lxml==5.2.1 wheel is broken on macOS with CPython 3.8
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lxml |
New
|
Undecided
|
Unassigned |
Bug Description
I'm filing this based on a locally observed breakage, reproduced from a breakage in pypa/twine's CI: <https:/
TL;DR: importing `etree` from `lxml` causes an `ImportError` on a missing symbol: `_exsltDateXpat
Here's the full traceback, from `pip install lxml==5.2.1` on CPython 3.8.18 on macOS:
```
>>> from lxml import etree
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(
```
Reproduction steps (using `pyenv` to bootstrap Python 3.8):
```
pyenv install 3.8.18
pyenv shell 3.8.18
python -m venv env && source env/bin/activate
python -m pip install lxml==5.2.1
python -c 'from lxml import etree'
```
This failure does **not** happen with `lxml==5.2.0`, strongly suggesting a wheel build regression on macOS (and possibly other platforms) between 5.2.0 and 5.2.1.
As a result of this bug, I'm unable to submit the library version metadata suggested in the issue template. However, the wheel in question is `lxml-5.
From looking through recent changes, it appears that the 3.8 wheel is known to be broken and was intentionally skipped in `cibuildwheel`: <https:/ /github. com/lxml/ lxml/commit/ dd85a2dc13221a5 09da198d5297ee4 667ec4aa7e>
However, that change was made prior to 5.2.1's release, meaning that the current wheel on PyPI is still non-functional. I believe yanking that individual wheel would suffice to resolve this issue, given that future releases will not build this wheel at all.