WattTime / pyiso

Python client libraries for ISO and other power grid data sources.
http://pyiso.readthedocs.org/
Other
243 stars 112 forks source link

Can't install pyiso 0.4.0 (lxml is not installed) #209

Open aaktaev opened 2 years ago

aaktaev commented 2 years ago

I'm trying to make docker image where will be installed pyiso==0.4.0 (with python3.8.13):

Collecting lxml
  Downloading lxml-3.6.4.tar.gz (3.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.7/3.7 MB 15.0 MB/s eta 0:00:00
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: dash-renderer, pyiso, lxml, PyMeeus, retrying, sklearn
  Building wheel for dash-renderer (setup.py): started
  Building wheel for dash-renderer (setup.py): finished with status 'done'
  Created wheel for dash-renderer: filename=dash_renderer-1.9.1-py3-none-any.whl size=1014875 sha256=591211e277b2960250a65630d82a3022771870724820fc1ce3e5e495f271ed27
  Stored in directory: /root/.cache/pip/wheels/ac/7e/fd/807844722d79d8babcd27b16e5f7ecc7b476c45ca607c11729
  Building wheel for pyiso (setup.py): started
  Building wheel for pyiso (setup.py): finished with status 'done'
  Created wheel for pyiso: filename=pyiso-0.4.0-py3-none-any.whl size=84633 sha256=838cba1771d62f9cfea5ec26c000629f8e514f41ea444b1bd819c23c7b06149f
  Stored in directory: /root/.cache/pip/wheels/4b/c3/1b/224cd217563fcc1dfe64db059a9fc67319437f64e30dfb9010
  Building wheel for lxml (setup.py): started
  Building wheel for lxml (setup.py): still running...
  Building wheel for lxml (setup.py): finished with status 'error'
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [167 lines of output]
      Building lxml version 3.6.4.
      Building without Cython.
      Using build configuration of libxslt 1.1.34
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.8
      creating build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/builder.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/sax.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.8/lxml
      creating build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.8/lxml/includes
      creating build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.8/lxml/html
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron
      copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.8/lxml/isoschematron
      copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.8/lxml/includes
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/rng
      copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/rng
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build/temp.linux-x86_64-3.8
      creating build/temp.linux-x86_64-3.8/src
      creating build/temp.linux-x86_64-3.8/src/lxml
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/local/include/python3.8 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.8/src/lxml/lxml.etree.o -w
      src/lxml/lxml.etree.c: In function ‘__Pyx_ExceptionSave’:
      src/lxml/lxml.etree.c:221065:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221065 |     *type = tstate->exc_type;
             |                     ^~~~~~~~
             |                     curexc_type
      src/lxml/lxml.etree.c:221066:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221066 |     *value = tstate->exc_value;
             |                      ^~~~~~~~~
             |                      curexc_value
      src/lxml/lxml.etree.c:221067:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221067 |     *tb = tstate->exc_traceback;
             |                   ^~~~~~~~~~~~~
             |                   curexc_traceback
      src/lxml/lxml.etree.c: In function ‘__Pyx_ExceptionReset’:
      src/lxml/lxml.etree.c:221079:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221079 |     tmp_type = tstate->exc_type;
             |                        ^~~~~~~~
             |                        curexc_type
      src/lxml/lxml.etree.c:221080:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221080 |     tmp_value = tstate->exc_value;
             |                         ^~~~~~~~~
             |                         curexc_value
      src/lxml/lxml.etree.c:221081:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221081 |     tmp_tb = tstate->exc_traceback;
             |                      ^~~~~~~~~~~~~
             |                      curexc_traceback
      src/lxml/lxml.etree.c:221082:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221082 |     tstate->exc_type = type;
             |             ^~~~~~~~
             |             curexc_type
      src/lxml/lxml.etree.c:221083:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221083 |     tstate->exc_value = value;
             |             ^~~~~~~~~
             |             curexc_value
      src/lxml/lxml.etree.c:221084:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221084 |     tstate->exc_traceback = tb;
             |             ^~~~~~~~~~~~~
             |             curexc_traceback
      src/lxml/lxml.etree.c: In function ‘__Pyx_GetException’:
      src/lxml/lxml.etree.c:221127:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221127 |     tmp_type = tstate->exc_type;
             |                        ^~~~~~~~
             |                        curexc_type
      src/lxml/lxml.etree.c:221128:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221128 |     tmp_value = tstate->exc_value;
             |                         ^~~~~~~~~
             |                         curexc_value
      src/lxml/lxml.etree.c:221129:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221129 |     tmp_tb = tstate->exc_traceback;
             |                      ^~~~~~~~~~~~~
             |                      curexc_traceback
      src/lxml/lxml.etree.c:221130:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221130 |     tstate->exc_type = local_type;
             |             ^~~~~~~~
             |             curexc_type
      src/lxml/lxml.etree.c:221131:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221131 |     tstate->exc_value = local_value;
             |             ^~~~~~~~~
             |             curexc_value
      src/lxml/lxml.etree.c:221132:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221132 |     tstate->exc_traceback = local_tb;
             |             ^~~~~~~~~~~~~
             |             curexc_traceback
      src/lxml/lxml.etree.c: In function ‘__Pyx_ExceptionSwap’:
      src/lxml/lxml.etree.c:221441:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221441 |     tmp_type = tstate->exc_type;
             |                        ^~~~~~~~
             |                        curexc_type
      src/lxml/lxml.etree.c:221442:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221442 |     tmp_value = tstate->exc_value;
             |                         ^~~~~~~~~
             |                         curexc_value
      src/lxml/lxml.etree.c:221443:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221443 |     tmp_tb = tstate->exc_traceback;
             |                      ^~~~~~~~~~~~~
             |                      curexc_traceback
      src/lxml/lxml.etree.c:221444:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221444 |     tstate->exc_type = *type;
             |             ^~~~~~~~
             |             curexc_type
      src/lxml/lxml.etree.c:221445:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221445 |     tstate->exc_value = *value;
             |             ^~~~~~~~~
             |             curexc_value
      src/lxml/lxml.etree.c:221446:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221446 |     tstate->exc_traceback = *tb;
             |             ^~~~~~~~~~~~~
             |             curexc_traceback
      Compile failed: command 'gcc' failed with exit status 1
      creating tmp
      cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInite9awqf50.c -o tmp/xmlXPathInite9awqf50.o
      cc tmp/xmlXPathInite9awqf50.o -lxml2 -o a.out
      error: command 'gcc' failed with exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for lxml
  Running setup.py clean for lxml
  Building wheel for PyMeeus (setup.py): started
  Building wheel for PyMeeus (setup.py): finished with status 'done'
  Created wheel for PyMeeus: filename=PyMeeus-0.5.11-py3-none-any.whl size=730985 sha256=209becbf35c0e5c8752ff6f690e1cd12e6f5e11f8c1603d6085fd4fe25d89aa9
  Stored in directory: /root/.cache/pip/wheels/a0/8b/b2/810ae5a6f970c8be4725353400d643c90de1c0f023a9884ee7
  Building wheel for retrying (setup.py): started
  Building wheel for retrying (setup.py): finished with status 'done'
  Created wheel for retrying: filename=retrying-1.3.3-py3-none-any.whl size=11447 sha256=746a0dcfece1ffad658f6102fe7e13b0ee1ff921a404e438e2518d369227fc7d
  Stored in directory: /root/.cache/pip/wheels/c4/a7/48/0a434133f6d56e878ca511c0e6c38326907c0792f67b476e56
  Building wheel for sklearn (setup.py): started
  Building wheel for sklearn (setup.py): finished with status 'done'
  Created wheel for sklearn: filename=sklearn-0.0-py2.py3-none-any.whl size=1310 sha256=f158b7ab10c78362e72492e66b6173e7838d78c65c87c05fd7ba8e48c7614648
  Stored in directory: /root/.cache/pip/wheels/22/0b/40/fd3f795caaa1fb4c6cb738bc1f56100be1e57da95849bfc897
Successfully built dash-renderer pyiso PyMeeus retrying sklearn
Failed to build lxml
Installing collected packages: webencodings, Send2Trash, PyMeeus, pure-eval, ptyprocess, pickleshare, mistune, lxml, korean-lunar-calendar, ipython-genutils, fastjsonschema, executing, dash-table, dash-renderer, dash-html-components, dash-core-components, beautifulsoup4, backcall, appnope, zipp, xlrd, Werkzeug, urllib3, typing-extensions, traitlets, tornado, tinycss2, threadpoolctl, testpath, soupsieve, Shapely, retrying, pyzmq, pyrsistent, pyproj, Pygments, psutil, prometheus-client, plotly, Pillow, pexpect, parso, pandocfilters, numpy, nest-asyncio, munch, mock, kiwisolver, jupyterlab-widgets, jupyterlab-pygments, joblib, idna, html5lib, hijri-converter, gunicorn, fonttools, entrypoints, defusedxml, decorator, debugpy, cycler, convertdate, cligj, charset-normalizer, chardet, cffi, bleach, attrs, async-generator, asttokens, terminado, stack-data, scipy, requests, QtPy, pandas, matplotlib-inline, matplotlib, jupyter-core, jedi, importlib-resources, holidays, Fiona, argon2-cffi-bindings, xgboost, timezonefinderL, scikit-learn, jupyter-client, jsonschema, ipython, geopandas, Flask, descartes, argon2-cffi, sklearn, pyiso, nbformat, ipykernel, qtconsole, nbclient, jupyter-console, dash, nbconvert, dash-bootstrap-components, notebook, widgetsnbextension, ipywidgets, jupyter
  Running setup.py install for lxml: started
  Running setup.py install for lxml: still running...
  Running setup.py install for lxml: finished with status 'error'
  error: subprocess-exited-with-error

  × Running setup.py install for lxml did not run successfully.
  │ exit code: 1
  ╰─> [166 lines of output]
      Building lxml version 3.6.4.
      Building without Cython.
      Using build configuration of libxslt 1.1.34
      running install
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.8
      creating build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/builder.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/sax.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.8/lxml
      creating build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.8/lxml/includes
      creating build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.8/lxml/html
      copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.8/lxml/html
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron
      copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.8/lxml/isoschematron
      copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.8/lxml
      copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.8/lxml/includes
      copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.8/lxml/includes
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/rng
      copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/rng
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl
      creating build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build/temp.linux-x86_64-3.8
      creating build/temp.linux-x86_64-3.8/src
      creating build/temp.linux-x86_64-3.8/src/lxml
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/local/include/python3.8 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.8/src/lxml/lxml.etree.o -w
      src/lxml/lxml.etree.c: In function ‘__Pyx_ExceptionSave’:
      src/lxml/lxml.etree.c:221065:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221065 |     *type = tstate->exc_type;
             |                     ^~~~~~~~
             |                     curexc_type
      src/lxml/lxml.etree.c:221066:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221066 |     *value = tstate->exc_value;
             |                      ^~~~~~~~~
             |                      curexc_value
      src/lxml/lxml.etree.c:221067:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221067 |     *tb = tstate->exc_traceback;
             |                   ^~~~~~~~~~~~~
             |                   curexc_traceback
      src/lxml/lxml.etree.c: In function ‘__Pyx_ExceptionReset’:
      src/lxml/lxml.etree.c:221079:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221079 |     tmp_type = tstate->exc_type;
             |                        ^~~~~~~~
             |                        curexc_type
      src/lxml/lxml.etree.c:221080:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221080 |     tmp_value = tstate->exc_value;
             |                         ^~~~~~~~~
             |                         curexc_value
      src/lxml/lxml.etree.c:221081:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221081 |     tmp_tb = tstate->exc_traceback;
             |                      ^~~~~~~~~~~~~
             |                      curexc_traceback
      src/lxml/lxml.etree.c:221082:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221082 |     tstate->exc_type = type;
             |             ^~~~~~~~
             |             curexc_type
      src/lxml/lxml.etree.c:221083:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221083 |     tstate->exc_value = value;
             |             ^~~~~~~~~
             |             curexc_value
      src/lxml/lxml.etree.c:221084:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221084 |     tstate->exc_traceback = tb;
             |             ^~~~~~~~~~~~~
             |             curexc_traceback
      src/lxml/lxml.etree.c: In function ‘__Pyx_GetException’:
      src/lxml/lxml.etree.c:221127:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221127 |     tmp_type = tstate->exc_type;
             |                        ^~~~~~~~
             |                        curexc_type
      src/lxml/lxml.etree.c:221128:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221128 |     tmp_value = tstate->exc_value;
             |                         ^~~~~~~~~
             |                         curexc_value
      src/lxml/lxml.etree.c:221129:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221129 |     tmp_tb = tstate->exc_traceback;
             |                      ^~~~~~~~~~~~~
             |                      curexc_traceback
      src/lxml/lxml.etree.c:221130:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221130 |     tstate->exc_type = local_type;
             |             ^~~~~~~~
             |             curexc_type
      src/lxml/lxml.etree.c:221131:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221131 |     tstate->exc_value = local_value;
             |             ^~~~~~~~~
             |             curexc_value
      src/lxml/lxml.etree.c:221132:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221132 |     tstate->exc_traceback = local_tb;
             |             ^~~~~~~~~~~~~
             |             curexc_traceback
      src/lxml/lxml.etree.c: In function ‘__Pyx_ExceptionSwap’:
      src/lxml/lxml.etree.c:221441:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221441 |     tmp_type = tstate->exc_type;
             |                        ^~~~~~~~
             |                        curexc_type
      src/lxml/lxml.etree.c:221442:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221442 |     tmp_value = tstate->exc_value;
             |                         ^~~~~~~~~
             |                         curexc_value
      src/lxml/lxml.etree.c:221443:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221443 |     tmp_tb = tstate->exc_traceback;
             |                      ^~~~~~~~~~~~~
             |                      curexc_traceback
      src/lxml/lxml.etree.c:221444:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
      221444 |     tstate->exc_type = *type;
             |             ^~~~~~~~
             |             curexc_type
      src/lxml/lxml.etree.c:221445:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
      221445 |     tstate->exc_value = *value;
             |             ^~~~~~~~~
             |             curexc_value
      src/lxml/lxml.etree.c:221446:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
      221446 |     tstate->exc_traceback = *tb;
             |             ^~~~~~~~~~~~~
             |             curexc_traceback
      Compile failed: command 'gcc' failed with exit status 1
      cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitahkspco6.c -o tmp/xmlXPathInitahkspco6.o
      cc tmp/xmlXPathInitahkspco6.o -lxml2 -o a.out
      error: command 'gcc' failed with exit status 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> lxml

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
WARNING: You are using pip version 22.0.4; however, version 22.2.2 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
aaktaev commented 2 years ago

When I try to set lxml==4.9.1 , it fails:

RROR: Cannot install -r /app/list.txt (line 97) and lxml==4.9.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested lxml==4.9.1
    pyiso 0.4.0 depends on lxml==3.6.4

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
WARNING: You are using pip version 22.0.4; however, version 22.2.2 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
Betristor commented 2 years ago

I encountered a similar problem with you. My Mac M1 needs arm64 package but lxml failed to be installed.

Failed to build lxml
Installing collected packages: lxml, billiard, beautifulsoup4, vine, mock, html5lib, click-didyoumean, click-repl, amqp, kombu, celery, pyiso
  Running setup.py install for lxml ... error
  error: subprocess-exited-with-error

  × Running setup.py install for lxml did not run successfully.
  │ exit code: 1
  ╰─> [140 lines of output]
      Building lxml version 3.6.4.
      Building without Cython.
      Using build configuration of libxslt 1.1.29
      Building against libxml2/libxslt in the following directory: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib
      running install
      /Users/yuhengzhang/miniforge3/envs/psa/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.macosx-11.0-arm64-cpython-39
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/_elementpath.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/sax.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/pyclasslookup.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/builder.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/doctestcompare.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/usedoctest.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/cssselect.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/ElementInclude.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/soupparser.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/defs.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/_setmixin.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/clean.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/_diffcommand.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/html5parser.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/formfill.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/builder.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/ElementSoup.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/_html5builder.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/usedoctest.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      copying src/lxml/html/diff.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/html
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron
      copying src/lxml/isoschematron/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron
      copying src/lxml/lxml.etree.h -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/lxml.etree_api.h -> build/lib.macosx-11.0-arm64-cpython-39/lxml
      copying src/lxml/includes/xmlerror.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/c14n.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/xmlschema.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/schematron.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/tree.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/uri.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/etreepublic.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/xpath.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/htmlparser.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/xslt.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/config.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/xmlparser.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/xinclude.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/dtdvalid.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/relaxng.pxd -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/lxml-version.h -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      copying src/lxml/includes/etree_defs.h -> build/lib.macosx-11.0-arm64-cpython-39/lxml/includes
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/rng
      copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/rng
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl
      creating build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.macosx-11.0-arm64-cpython-39/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build/temp.macosx-11.0-arm64-cpython-39
      creating build/temp.macosx-11.0-arm64-cpython-39/src
      creating build/temp.macosx-11.0-arm64-cpython-39/src/lxml
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/yuhengzhang/miniforge3/envs/psa/include -arch arm64 -fPIC -O2 -isystem /Users/yuhengzhang/miniforge3/envs/psa/include -arch arm64 -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -Isrc/lxml/includes -I/Users/yuhengzhang/miniforge3/envs/psa/include/python3.9 -c src/lxml/lxml.etree.c -o build/temp.macosx-11.0-arm64-cpython-39/src/lxml/lxml.etree.o -w -flat_namespace
      src/lxml/lxml.etree.c:214085:38: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__TempStore.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214095:45: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__ExceptionContext.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214102:37: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__LogEntry.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214114:41: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__BaseErrorLog.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214123:41: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__ListErrorLog.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214128:44: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__ErrorLogContext.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214140:37: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__ErrorLog.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214149:43: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__DomainErrorLog.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214158:45: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__RotatingErrorLog.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214168:38: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree_PyErrorLog.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214182:20: error: no member named 'tp_print' in 'struct _typeobject'
        LxmlDocumentType.tp_print = 0;
        ~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214189:35: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree_DocInfo.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214194:19: error: no member named 'tp_print' in 'struct _typeobject'
        LxmlElementType.tp_print = 0;
        ~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214271:48: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree___ContentOnlyElement.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214308:36: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__Comment.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214316:50: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__ProcessingInstruction.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214324:35: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree__Entity.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214329:33: error: no member named 'tp_print' in 'struct _typeobject'
        __pyx_type_4lxml_5etree_QName.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
      src/lxml/lxml.etree.c:214335:23: error: no member named 'tp_print' in 'struct _typeobject'
        LxmlElementTreeType.tp_print = 0;
        ~~~~~~~~~~~~~~~~~~~ ^
      fatal error: too many errors emitted, stopping now [-ferror-limit=]
      20 errors generated.
      Compile failed: command '/usr/bin/clang' failed with exit code 1
      cc -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/usr/include/libxml2 -c /var/folders/6q/39cht5wn1q33_whm58ry71kc0000gn/T/xmlXPathInit2lafizkr.c -o var/folders/6q/39cht5wn1q33_whm58ry71kc0000gn/T/xmlXPathInit2lafizkr.o
      cc var/folders/6q/39cht5wn1q33_whm58ry71kc0000gn/T/xmlXPathInit2lafizkr.o -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -lxml2 -o a.out
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> lxml
emunsing commented 1 year ago

@ajdonnison Would you be able to provide the Python version (and ideally lxml and pandas versions) you're working with, as it seems like a lot of people are having installation issues?

By removing the pandas version constraint in the source code, I was able to get a conflict-free install via setup.py on Python 3.10.0 by resolving other dependencies using conda. I haven't yet run through the full test suites to see what breaks in pandas 0.21 let alone 1.x. It looks like the tests also have a number of dependencies (nose, parameterized, mock, libfaketime, requests_mock, freezegun) which are not included in requirements.txt or setup.py.

When I try to install pandas==0.20.3 to satisfy the pandas version constraint, I get the error pandas==0.20.3 -> python[version='>=2.7,<2.8.0a0|>=3.5,<3.6.0a0|>=3.6,<3.7.0a0']

However, I was running into some lxml errors which indicated issues with a python version below 3.8.5. My suspicion is that @ajdonnison is working on a version without the pandas constraint, or has a lucky python+lxml+pandas combination that the dependency solver can't figure out...

Thanks @ajdonnison for your work on this; I last touched the code in 2017(!) but am now back and looking at EU data, for which I'm hoping your code will be helpful!