Installing for Windows on ARM

Bug #2004481 reported by Cristi A
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
lxml
Triaged
Low
Unassigned

Bug Description

When trying to install via `pip` on Windows 11 on ARM I get the following error:

```console
$ py -3 -m pip install lxml
Collecting lxml
  Using cached lxml-4.9.2.tar.gz (3.7 MB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: lxml
  Building wheel for lxml (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [122 lines of output]
      Building lxml version 4.9.2.
      Building without Cython.
      Building against pre-built libxml2 andl libxslt libraries
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-arm64-3.11
      creating build\lib.win-arm64-3.11\lxml
      copying src\lxml\builder.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\cssselect.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\doctestcompare.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\ElementInclude.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\pyclasslookup.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\sax.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\usedoctest.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\_elementpath.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\__init__.py -> build\lib.win-arm64-3.11\lxml
      creating build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\__init__.py -> build\lib.win-arm64-3.11\lxml\includes
      creating build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\builder.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\clean.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\defs.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\diff.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\ElementSoup.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\formfill.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\html5parser.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\soupparser.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\usedoctest.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\_diffcommand.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\_html5builder.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\_setmixin.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\__init__.py -> build\lib.win-arm64-3.11\lxml\html
      creating build\lib.win-arm64-3.11\lxml\isoschematron
      copying src\lxml\isoschematron\__init__.py -> build\lib.win-arm64-3.11\lxml\isoschematron
      copying src\lxml\etree.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\etree_api.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\lxml.etree.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\lxml.etree_api.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\etree.pyx -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\objectify.pyx -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\apihelpers.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\classlookup.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\cleanup.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\debug.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\docloader.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\dtd.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\extensions.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\iterparse.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\nsclasses.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\objectpath.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\parser.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\parsertarget.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\proxy.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\public-api.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\readonlytree.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\relaxng.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\saxparser.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\schematron.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\serializer.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xinclude.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xmlerror.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xmlid.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xmlschema.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xpath.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xslt.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xsltext.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\includes\c14n.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\config.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\dtdvalid.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\etreepublic.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\htmlparser.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\relaxng.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\schematron.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\tree.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\uri.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xinclude.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xmlerror.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xmlparser.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xmlschema.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xpath.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xslt.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\__init__.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\etree_defs.h -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\lxml-version.h -> build\lib.win-arm64-3.11\lxml\includes
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources\rng
      copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\rng
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl
      copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl
      copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build\temp.win-arm64-3.11
      creating build\temp.win-arm64-3.11\Release
      creating build\temp.win-arm64-3.11\Release\src
      creating build\temp.win-arm64-3.11\Release\src\lxml
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\ARM64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc\lxml\includes -IC:\Users\test\AppData\Local\Programs\Python\Python311-arm64\include -IC:\Users\test\AppData\Local\Programs\Python\Python311-arm64\Include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um /Tcsrc\lxml\etree.c /Fobuild\temp.win-arm64-3.11\Release\src\lxml\etree.obj -w
      cl : Command line warning D9025 : overriding '/W3' with '/w'
      etree.c
      C:\Users\test\AppData\Local\Temp\pip-install-rmdb1w4j\lxml_38a4ec12cccb47b5b4a80313a649f412\src\lxml\includes/etree_defs.h(14): fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': No such file or directory
      Compile failed: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\ARM64\\cl.exe' failed with exit code 2
      creating Users
      creating Users\test
      creating Users\test\AppData
      creating Users\test\AppData\Local
      creating Users\test\AppData\Local\Temp
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\ARM64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -I/usr/include/libxml2 -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um /TcC:\Users\test\AppData\Local\Temp\xmlXPathInitdcjyjat4.c /FoUsers\test\AppData\Local\Temp\xmlXPathInitdcjyjat4.obj
      xmlXPathInitdcjyjat4.c
      C:\Users\test\AppData\Local\Temp\xmlXPathInitdcjyjat4.c(1): fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
      error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\ARM64\\cl.exe' failed with exit code 2
      *********************************************************************************
      Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
      *********************************************************************************
      [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
Failed to build lxml
Installing collected packages: lxml
  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
  ╰─> [117 lines of output]
      Building lxml version 4.9.2.
      Building without Cython.
      Building against pre-built libxml2 andl libxslt libraries
      running install
      running build
      running build_py
      creating build
      creating build\lib.win-arm64-3.11
      creating build\lib.win-arm64-3.11\lxml
      copying src\lxml\builder.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\cssselect.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\doctestcompare.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\ElementInclude.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\pyclasslookup.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\sax.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\usedoctest.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\_elementpath.py -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\__init__.py -> build\lib.win-arm64-3.11\lxml
      creating build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\__init__.py -> build\lib.win-arm64-3.11\lxml\includes
      creating build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\builder.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\clean.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\defs.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\diff.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\ElementSoup.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\formfill.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\html5parser.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\soupparser.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\usedoctest.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\_diffcommand.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\_html5builder.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\_setmixin.py -> build\lib.win-arm64-3.11\lxml\html
      copying src\lxml\html\__init__.py -> build\lib.win-arm64-3.11\lxml\html
      creating build\lib.win-arm64-3.11\lxml\isoschematron
      copying src\lxml\isoschematron\__init__.py -> build\lib.win-arm64-3.11\lxml\isoschematron
      copying src\lxml\etree.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\etree_api.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\lxml.etree.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\lxml.etree_api.h -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\etree.pyx -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\objectify.pyx -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\apihelpers.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\classlookup.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\cleanup.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\debug.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\docloader.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\dtd.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\extensions.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\iterparse.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\nsclasses.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\objectpath.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\parser.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\parsertarget.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\proxy.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\public-api.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\readonlytree.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\relaxng.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\saxparser.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\schematron.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\serializer.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xinclude.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xmlerror.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xmlid.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xmlschema.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xpath.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xslt.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\xsltext.pxi -> build\lib.win-arm64-3.11\lxml
      copying src\lxml\includes\c14n.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\config.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\dtdvalid.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\etreepublic.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\htmlparser.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\relaxng.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\schematron.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\tree.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\uri.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xinclude.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xmlerror.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xmlparser.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xmlschema.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xpath.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\xslt.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\__init__.pxd -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\etree_defs.h -> build\lib.win-arm64-3.11\lxml\includes
      copying src\lxml\includes\lxml-version.h -> build\lib.win-arm64-3.11\lxml\includes
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources\rng
      copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\rng
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl
      copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl
      copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl
      creating build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win-arm64-3.11\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build\temp.win-arm64-3.11
      creating build\temp.win-arm64-3.11\Release
      creating build\temp.win-arm64-3.11\Release\src
      creating build\temp.win-arm64-3.11\Release\src\lxml
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\ARM64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc\lxml\includes -IC:\Users\test\AppData\Local\Programs\Python\Python311-arm64\include -IC:\Users\test\AppData\Local\Programs\Python\Python311-arm64\Include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um /Tcsrc\lxml\etree.c /Fobuild\temp.win-arm64-3.11\Release\src\lxml\etree.obj -w
      cl : Command line warning D9025 : overriding '/W3' with '/w'
      etree.c
      C:\Users\test\AppData\Local\Temp\pip-install-rmdb1w4j\lxml_38a4ec12cccb47b5b4a80313a649f412\src\lxml\includes/etree_defs.h(14): fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': No such file or directory
      Compile failed: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\ARM64\\cl.exe' failed with exit code 2
      C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\ARM64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -I/usr/include/libxml2 -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um /TcC:\Users\test\AppData\Local\Temp\xmlXPathInit090jfbrt.c /FoUsers\test\AppData\Local\Temp\xmlXPathInit090jfbrt.obj
      xmlXPathInit090jfbrt.c
      C:\Users\test\AppData\Local\Temp\xmlXPathInit090jfbrt.c(1): fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
      error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\ARM64\\cl.exe' failed with exit code 2
      *********************************************************************************
      Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
      *********************************************************************************
      [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.
```

Downloading the sources from the GitHub Release page for 4.9.2 and trying to manually build it fails in a similar way.

```console
$$env:STATICBUILD=1; py -3 .\setup.py build
Building lxml version 4.9.2.
Latest version of libxml2 is 2.9.12-1
Latest version of libxslt is 1.1.34
Latest version of zlib is 1.2.11
Latest version of iconv is 1.14
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2022.05.30/libxml2-2.9.12-1.win-arm64.zip" to "libs\libxml2-2.9.12-1.win-arm64.zip"
Unpacking libxml2-2.9.12-1.win-arm64.zip into libs
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2022.05.30/libxslt-1.1.34.win-arm64.zip" to "libs\libxslt-1.1.34.win-arm64.zip"
Unpacking libxslt-1.1.34.win-arm64.zip into libs
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2022.05.30/zlib-1.2.11.win-arm64.zip" to "libs\zlib-1.2.11.win-arm64.zip"
Unpacking zlib-1.2.11.win-arm64.zip into libs
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2022.05.30/iconv-1.14.win-arm64.zip" to "libs\iconv-1.14.win-arm64.zip"
Unpacking iconv-1.14.win-arm64.zip into libs
Building without Cython.
Building against pre-built libxml2 andl libxslt libraries
Building against libxml2/libxslt in one of the following directories:
  libs\libxml2-2.9.12-1.win-arm64\lib
  libs\libxslt-1.1.34.win-arm64\lib
  libs\zlib-1.2.11.win-arm64\lib
  libs\iconv-1.14.win-arm64\lib
running build
running build_py
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libexslt\__init__.py -> build\lib.win-arm64-3.11\lxml\includes\libexslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\__init__.py -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\zlib-1.2.11.win-arm64\include\__init__.py -> build\lib.win-arm64-3.11\lxml\includes\extlibs
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\c14n.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\catalog.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\chvalid.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\debugXML.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\dict.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\DOCBparser.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\encoding.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\entities.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\globals.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\hash.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\HTMLparser.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\HTMLtree.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\list.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\nanoftp.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\nanohttp.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\parser.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\parserInternals.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\pattern.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\relaxng.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\SAX.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\SAX2.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\schemasInternals.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\schematron.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\threads.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\tree.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\uri.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\valid.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xinclude.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xlink.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlautomata.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlerror.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlexports.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlIO.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlmemory.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlmodule.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlreader.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlregexp.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlsave.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlschemas.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlschemastypes.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlstring.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlunicode.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlversion.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xmlwriter.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xpath.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xpathInternals.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxml2-2.9.12-1.win-arm64\include\libxml\xpointer.h -> build\lib.win-arm64-3.11\lxml\includes\libxml
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libexslt\exslt.h -> build\lib.win-arm64-3.11\lxml\includes\libexslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libexslt\exsltconfig.h -> build\lib.win-arm64-3.11\lxml\includes\libexslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libexslt\exsltexports.h -> build\lib.win-arm64-3.11\lxml\includes\libexslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libexslt\libexslt.h -> build\lib.win-arm64-3.11\lxml\includes\libexslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\attributes.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\documents.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\extensions.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\extra.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\functions.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\imports.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\keys.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\libxslt.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\namespaces.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\numbersInternals.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\preproc.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\security.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\templates.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\transform.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\trio.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\triodef.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\variables.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\win32config.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\xslt.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\xsltconfig.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\xsltexports.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\xsltInternals.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\xsltlocale.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\libxslt-1.1.34.win-arm64\include\libxslt\xsltutils.h -> build\lib.win-arm64-3.11\lxml\includes\libxslt
copying C:\Users\test\Downloads\lxml-4.9.2\libs\zlib-1.2.11.win-arm64\include\zconf.h -> build\lib.win-arm64-3.11\lxml\includes\extlibs
copying C:\Users\test\Downloads\lxml-4.9.2\libs\zlib-1.2.11.win-arm64\include\zlib.h -> build\lib.win-arm64-3.11\lxml\includes\extlibs
running build_ext
building 'lxml.etree' extension
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\ARM64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DLIBXML_STATIC -DLIBXSLT_STATIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Ilibs\libxml2-2.9.12-1.win-arm64\include -Ilibs\libxslt-1.1.34.win-arm64\include -Ilibs\zlib-1.2.11.win-arm64\include -Ilibs\iconv-1.14.win-arm64\include -Isrc -Isrc\lxml\includes -IC:\Users\test\AppData\Local\Programs\Python\Python311-arm64\include -IC:\Users\test\AppData\Local\Programs\Python\Python311-arm64\Include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\include -IC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt -IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt -IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um /Tcsrc\lxml\etree.c /Fobuild\temp.win-arm64-3.11\Release\src\lxml\etree.obj -w
cl : Command line warning D9025 : overriding '/W3' with '/w'
etree.c
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\HostX86\ARM64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:libs\libxml2-2.9.12-1.win-arm64\lib /LIBPATH:libs\libxslt-1.1.34.win-arm64\lib /LIBPATH:libs\zlib-1.2.11.win-arm64\lib /LIBPATH:libs\iconv-1.14.win-arm64\lib /LIBPATH:C:\Users\test\AppData\Local\Programs\Python\Python311-arm64\libs /LIBPATH:C:\Users\test\AppData\Local\Programs\Python\Python311-arm64\PCbuild\arm64 /LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\ATLMFC\lib\ARM64 /LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\lib\ARM64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\arm64 /LIBPATH:C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\arm64 libxslt_a.lib libexslt_a.lib libxml2_a.lib iconv_a.lib zlib.lib WS2_32.lib /EXPORT:PyInit_etree build\temp.win-arm64-3.11\Release\src\lxml\etree.obj /OUT:build\lib.win-arm64-3.11\lxml\etree.cp311-win_arm64.pyd /IMPLIB:build\temp.win-arm64-3.11\Release\src\lxml\etree.cp311-win_arm64.lib
fatal error C1047: The object or library file 'libs\iconv-1.14.win-arm64\lib\iconv_a.lib' was created by a different version of the compiler than other objects like 'build\temp.win-arm64-3.11\Release\src\lxml\etree.obj'; rebuild all objects and libraries with the same compiler
LINK : fatal error LNK1257: code generation failed
error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\ARM64\\link.exe' failed with exit code 1257
```

Looking at the GitHub workflow for `libxml2-win-binaries`, VS 2019 is used for these pre-build binaries, but you can't really get the build tools for that on Windows 11 on ARM as far as I understand from Microsoft's docs: https://learn.microsoft.com/en-us/visualstudio/install/visual-studio-on-arm-devices?view=vs-2022

Maybe I'm missing something, but is there a way to get `lxml` working on Windows 11 ARM?

I can't really provide all the required information, but here it goes:

Python : sys.version_info(major=3, minor=11, micro=0, releaselevel='beta', serial=3)

The sources I used were from the 4.9.2 release: https://github.com/lxml/lxml/releases/tag/lxml-4.9.2

I managed to workaround this by checking out `libxml2-win-binaries`, building them with VS 2022 (some minor changes to `build.ps1` are needed, I can make them public if needed; I also converted the `libiconv` VS solution to use VS2022 by using Visual Studio because the version generated by applying `libiconv.patch` was not compatible with what I had installed, but I'm 99% sure this is a me problem), and patching the build scripts to no longer download the prebuilt binaries from GitHub.

As such, I'm not sure if this is a bug, a problem with my environment, or an unsupported use case.

Should users of Windows 11 ARM be able to install `lxml` with `pip`?
Should the prebuilt binaries work on Windows 11 ARM? Making sure these come in all shapes and sizes that can be required in the wild is probably not worth the effort (switching to VS 2022 will make them incompatible with VS 2019 probably).

Even if this is not a bug, I think that having this knowledge posted here may at least help others like me in the future.

Revision history for this message
scoder (scoder) wrote :

Windows is notoriously annoying to support, so I'm not going to try it myself. I'll leave it to Windows users instead to provide a working setup. PRs welcome for the library and lxml build.

https://github.com/lxml/libxml2-win-binaries
https://github.com/lxml/lxml

Changed in lxml:
importance: Undecided → Low
status: New → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.