Question - LXML compatibility with Python 3.9 on Linux (travis)
LXML package states, that has minimal requirements on python - Requires: Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.* Based on what I see on Travis, it seems to me, that for python 3.9.x. the minimum stable LXML version is 4.3.x; is that expected? Sample log: Collecting lxml==4.2.6 Downloading lxml-4.2.6.tar.gz (2.4 MB) Building wheels for collected packages: lxml Building wheel for lxml (setup.py) ... error ERROR: Command errored out with exit status 1: command: /home/travis/virtualenv/python3.9.1/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-i7un6wlk/lxml_b3782dbd0b1b4611a75033d4ab809f51/setup.py'"'"'; __file__='"'"'/tmp/pip-install-i7un6wlk/lxml_b3782dbd0b1b4611a75033d4ab809f51/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-v441aa6c … … creating build/temp.linux-x86_64-3.9/src/lxml gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/include/libxml2 -Isrc -Isrc/lxml/includes -I/home/travis/virtualenv/python3.9.1/include -I/opt/python/3.9.1/include/python3.9 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.9/src/lxml/etree.o -w src/lxml/etree.c: In function ‘__Pyx_modinit_type_init_code’: src/lxml/etree.c:230310:32: error: ‘PyTypeObject {aka struct _typeobject}’ has no member named ‘tp_print’ __pyx_type_4lxml_5etree_Error.tp_print = 0; You can see the full logs and which version was installed sucessfully and which not on the compatibility build matrix here: https://app.travis-ci.com/github/SAP/python-pyodata/builds/233333488
Petr Hanák schrieb am 21.07.21 um 17:02:
LXML package states, that has minimal requirements on python - Requires: Python >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*
These were the minimum requirements that were defined at the time when the specific package version was released. They don't mean that things will keep working for all eternety.
Based on what I see on Travis, it seems to me, that for python 3.9.x. the minimum stable LXML version is 4.3.x; is that expected?
Sample log:
Collecting lxml==4.2.6 Downloading lxml-4.2.6.tar.gz (2.4 MB) Building wheels for collected packages: lxml Building wheel for lxml (setup.py) ... error ERROR: Command errored out with exit status 1: command: /home/travis/virtualenv/python3.9.1/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-i7un6wlk/lxml_b3782dbd0b1b4611a75033d4ab809f51/setup.py'"'"'; __file__='"'"'/tmp/pip-install-i7un6wlk/lxml_b3782dbd0b1b4611a75033d4ab809f51/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-v441aa6c … … creating build/temp.linux-x86_64-3.9/src/lxml gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/include/libxml2 -Isrc -Isrc/lxml/includes -I/home/travis/virtualenv/python3.9.1/include -I/opt/python/3.9.1/include/python3.9 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.9/src/lxml/etree.o -w src/lxml/etree.c: In function ‘__Pyx_modinit_type_init_code’: src/lxml/etree.c:230310:32: error: ‘PyTypeObject {aka struct _typeobject}’ has no member named ‘tp_print’ __pyx_type_4lxml_5etree_Error.tp_print = 0;
Yes, that's expected. There were C-API changes in CPython 3.9 that prevent older versions from compiling. Use 4.3.x. 4.2.x is no longer maintained. Stefan
participants (2)
-
Petr Hanák
-
Stefan Behnel