Skip to content

Cannot install grab-site on WSL2 (Ubuntu) #246

Description

@jacob-willden

After following the steps in the README to install grab-site on Windows Subsystem for Linux (Ubuntu) on Windows 10, I get stuck on the last command in step 2 for Linux installation:

$ ~/gs-venv/bin/pip install --no-binary lxml --upgrade git+https://github.com/ArchiveTeam/grab-site
Collecting git+https://github.com/ArchiveTeam/grab-site
  Cloning https://github.com/ArchiveTeam/grab-site to /tmp/pip-req-build-g0_z8bxl
  Running command git clone --filter=blob:none --quiet https://github.com/ArchiveTeam/grab-site /tmp/pip-req-build-g0_z8bxl
  Resolved https://github.com/ArchiveTeam/grab-site to commit f4027f57fcb6c7f19421e348fa8c8d7acf725267
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip (from grab-site==2.2.7)
  Using cached https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting click>=6.3 (from grab-site==2.2.7)
  Using cached click-8.1.8-py3-none-any.whl.metadata (2.3 kB)
Collecting manhole>=1.0.0 (from grab-site==2.2.7)
  Using cached manhole-1.8.1-py3-none-any.whl.metadata (13 kB)
Collecting lmdb>=0.89 (from grab-site==2.2.7)
  Downloading lmdb-1.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.1 kB)
Collecting autobahn>=0.12.1 (from grab-site==2.2.7)
  Downloading autobahn-23.1.2.tar.gz (480 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting google-re2>=1.0.6 (from grab-site==2.2.7)
  Downloading google_re2-1.1.20240702-1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (2.2 kB)
Collecting websockets>=6.0 (from grab-site==2.2.7)
  Downloading websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)
Collecting cchardet>=1.0.0 (from grab-site==2.2.7)
  Downloading cchardet-2.1.7-cp38-cp38-manylinux2010_x86_64.whl.metadata (7.7 kB)
Collecting txaio>=21.2.1 (from autobahn>=0.12.1->grab-site==2.2.7)
  Using cached txaio-23.1.1-py2.py3-none-any.whl.metadata (5.4 kB)
Collecting cryptography>=3.4.6 (from autobahn>=0.12.1->grab-site==2.2.7)
  Downloading cryptography-44.0.2-cp37-abi3-manylinux_2_34_x86_64.whl.metadata (5.7 kB)
Collecting hyperlink>=21.0.0 (from autobahn>=0.12.1->grab-site==2.2.7)
  Using cached hyperlink-21.0.0-py2.py3-none-any.whl.metadata (1.5 kB)
Requirement already satisfied: setuptools in ./gs-venv/lib/python3.8/site-packages (from autobahn>=0.12.1->grab-site==2.2.7) (56.0.0)
Collecting chardet (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Using cached chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
Collecting dnspython (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Downloading dnspython-2.6.1-py3-none-any.whl.metadata (5.8 kB)
Collecting html5-parser (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Using cached html5-parser-0.4.12.tar.gz (270 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting lxml (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Using cached lxml-5.4.0.tar.gz (3.7 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting namedlist (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Using cached namedlist-1.8-py2.py3-none-any.whl.metadata (14 kB)
Collecting sqlalchemy==1.3.24 (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Downloading SQLAlchemy-1.3.24-cp38-cp38-manylinux2010_x86_64.whl.metadata (7.9 kB)
Collecting tornado==4.5.3 (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Using cached tornado-4.5.3.tar.gz (484 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting yapsy (from wpull@ https://github.com/ArchiveTeam/ludios_wpull/archive/refs/tags/3.0.9.zip->grab-site==2.2.7)
  Using cached Yapsy-1.12.2.tar.gz (83 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting cffi>=1.12 (from cryptography>=3.4.6->autobahn>=0.12.1->grab-site==2.2.7)
  Downloading cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting idna>=2.5 (from hyperlink>=21.0.0->autobahn>=0.12.1->grab-site==2.2.7)
  Using cached idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting pycparser (from cffi>=1.12->cryptography>=3.4.6->autobahn>=0.12.1->grab-site==2.2.7)
  Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Downloading cchardet-2.1.7-cp38-cp38-manylinux2010_x86_64.whl (265 kB)
Using cached click-8.1.8-py3-none-any.whl (98 kB)
Downloading google_re2-1.1.20240702-1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (546 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 546.5/546.5 kB 9.1 MB/s eta 0:00:00
Downloading lmdb-1.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (294 kB)
Using cached manhole-1.8.1-py3-none-any.whl (16 kB)
Downloading websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (164 kB)
Downloading SQLAlchemy-1.3.24-cp38-cp38-manylinux2010_x86_64.whl (1.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 10.6 MB/s eta 0:00:00
Downloading cryptography-44.0.2-cp37-abi3-manylinux_2_34_x86_64.whl (4.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 11.2 MB/s eta 0:00:00
Using cached hyperlink-21.0.0-py2.py3-none-any.whl (74 kB)
Using cached txaio-23.1.1-py2.py3-none-any.whl (30 kB)
Using cached chardet-5.2.0-py3-none-any.whl (199 kB)
Downloading dnspython-2.6.1-py3-none-any.whl (307 kB)
Using cached namedlist-1.8-py2.py3-none-any.whl (15 kB)
Downloading cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (446 kB)
Using cached idna-3.10-py3-none-any.whl (70 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Building wheels for collected packages: grab-site, autobahn, wpull, tornado, html5-parser, lxml, yapsy
  Building wheel for grab-site (pyproject.toml) ... done
  Created wheel for grab-site: filename=grab_site-2.2.7-py3-none-any.whl size=47959 sha256=5b192fbbba215628c6e224306cf8fc808fe56d4a05dd4d00349ad4260cb7579e
  Stored in directory: /tmp/pip-ephem-wheel-cache-vb8u8y2k/wheels/e5/6d/cd/9797e1e7f685e22a0ead92e0c9bc1851617ad441fcf2ad36b8
  Building wheel for autobahn (pyproject.toml) ... done
  Created wheel for autobahn: filename=autobahn-23.1.2-py2.py3-none-any.whl size=666848 sha256=fc68f88ad64b73035f2808ef7ddcd31d5cdbbf16b8d4c5a7cf46f344f9596759
  Stored in directory: /home/somebody/.cache/pip/wheels/f1/a4/a2/92e99f91e89b278683501744f82533a888326e65adffee831a
  Building wheel for wpull (pyproject.toml) ... done
  Created wheel for wpull: filename=wpull-3.0.9-py3-none-any.whl size=681787 sha256=46d24cb87ccde840105fca3956265f86f075793029a48dd20f7f2886a42cbe33
  Stored in directory: /tmp/pip-ephem-wheel-cache-vb8u8y2k/wheels/f7/bc/04/560151d39f165759bf4cad45339f4a45a74b1282a30a8a338f
  Building wheel for tornado (pyproject.toml) ... done
  Created wheel for tornado: filename=tornado-4.5.3-cp38-cp38-linux_x86_64.whl size=421258 sha256=a9f341da111d53d6cd44aab4aeae07e97ff251a4f7013168f06c9ae86934fd72
  Stored in directory: /home/somebody/.cache/pip/wheels/20/fe/26/0c03adccd0cec2744261ec6b8380fbe5e726d1ea4cf3a9370e
  Building wheel for html5-parser (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for html5-parser (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [36 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-38/html5_parser
      copying src/html5_parser/dom.py -> build/lib.linux-x86_64-cpython-38/html5_parser
      copying src/html5_parser/encoding_names.py -> build/lib.linux-x86_64-cpython-38/html5_parser
      copying src/html5_parser/encoding_parser.py -> build/lib.linux-x86_64-cpython-38/html5_parser
      copying src/html5_parser/soup.py -> build/lib.linux-x86_64-cpython-38/html5_parser
      copying src/html5_parser/stdlib_etree.py -> build/lib.linux-x86_64-cpython-38/html5_parser
      copying src/html5_parser/__init__.py -> build/lib.linux-x86_64-cpython-38/html5_parser
      running build_ext
      building 'html5_parser.html_parser' extension
      creating build/temp.linux-x86_64-cpython-38/gumbo
      creating build/temp.linux-x86_64-cpython-38/src
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/attribute.c -o build/temp.linux-x86_64-cpython-38/gumbo/attribute.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/char_ref.c -o build/temp.linux-x86_64-cpython-38/gumbo/char_ref.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/error.c -o build/temp.linux-x86_64-cpython-38/gumbo/error.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/gumbo_edit.c -o build/temp.linux-x86_64-cpython-38/gumbo/gumbo_edit.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/parser.c -o build/temp.linux-x86_64-cpython-38/gumbo/parser.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/string_buffer.c -o build/temp.linux-x86_64-cpython-38/gumbo/string_buffer.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/string_piece.c -o build/temp.linux-x86_64-cpython-38/gumbo/string_piece.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/svg_attrs.c -o build/temp.linux-x86_64-cpython-38/gumbo/svg_attrs.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/svg_tags.c -o build/temp.linux-x86_64-cpython-38/gumbo/svg_tags.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/tag.c -o build/temp.linux-x86_64-cpython-38/gumbo/tag.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/tokenizer.c -o build/temp.linux-x86_64-cpython-38/gumbo/tokenizer.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/utf8.c -o build/temp.linux-x86_64-cpython-38/gumbo/utf8.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/util.c -o build/temp.linux-x86_64-cpython-38/gumbo/util.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c gumbo/vector.c -o build/temp.linux-x86_64-cpython-38/gumbo/vector.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c src/as-libxml.c -o build/temp.linux-x86_64-cpython-38/src/as-libxml.o -O3 -std=c99 -fvisibility=hidden
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DMAJOR=0 -DMINOR=4 -DPATCH=12 -I/usr/include/libxml2 -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c src/as-python-tree.c -o build/temp.linux-x86_64-cpython-38/src/as-python-tree.o -O3 -std=c99 -fvisibility=hidden
      In file included from src/as-python-tree.c:7:
      src/as-python-tree.h:10:10: fatal error: Python.h: No such file or directory
         10 | #include <Python.h>
            |          ^~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for html5-parser
  Building wheel for lxml (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for lxml (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [110 lines of output]
      Building lxml version 5.4.0.
      Building without Cython.
      Building against libxml2 2.9.14 and libxslt 1.1.39
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/builder.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/cssselect.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/sax.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/__init__.py -> build/lib.linux-x86_64-cpython-38/lxml
      creating build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-cpython-38/lxml/includes
      creating build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/builder.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/clean.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/defs.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/diff.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-cpython-38/lxml/html
      creating build/lib.linux-x86_64-cpython-38/lxml/isoschematron
      copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-cpython-38/lxml/isoschematron
      copying src/lxml/etree.h -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/etree_api.h -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/etree.pyx -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/objectify.pyx -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/apihelpers.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/classlookup.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/cleanup.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/debug.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/docloader.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/dtd.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/extensions.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/iterparse.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/nsclasses.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/objectpath.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/parser.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/parsertarget.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/proxy.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/public-api.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/readonlytree.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/relaxng.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/saxparser.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/schematron.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/serializer.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xinclude.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xmlerror.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xmlid.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xmlschema.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xpath.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xslt.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/xsltext.pxi -> build/lib.linux-x86_64-cpython-38/lxml
      copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/__init__.pxd -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-cpython-38/lxml/includes
      copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-cpython-38/lxml/includes
      creating build/lib.linux-x86_64-cpython-38/lxml/isoschematron/resources/rng
      copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-cpython-38/lxml/isoschematron/resources/rng
      creating build/lib.linux-x86_64-cpython-38/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-cpython-38/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-cpython-38/lxml/isoschematron/resources/xsl
      creating build/lib.linux-x86_64-cpython-38/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-cpython-38/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-cpython-38/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-cpython-38/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-cpython-38/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-cpython-38/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-cpython-38/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build/temp.linux-x86_64-cpython-38/src/lxml
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -fwrapv -O2 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/include/libxml2 -Isrc -Isrc/lxml/includes -I/home/somebody/gs-venv/include -I/usr/include/python3.8 -c src/lxml/etree.c -o build/temp.linux-x86_64-cpython-38/src/lxml/etree.o -w
      src/lxml/etree.c:105:10: fatal error: Python.h: No such file or directory
        105 | #include "Python.h"
            |          ^~~~~~~~~~
      compilation terminated.
      Compile failed: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      creating tmp
      cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitm7irsdwa.c -o tmp/xmlXPathInitm7irsdwa.o
      cc tmp/xmlXPathInitm7irsdwa.o -lxml2 -o a.out
      <string>:67: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 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
  Building wheel for yapsy (pyproject.toml) ... done
  Created wheel for yapsy: filename=yapsy-1.12.2-py3-none-any.whl size=39009 sha256=978efd2c4bf71a4a7fe44f1f19c4c954c22d2e540478cc2d5bdc763056f78de2
  Stored in directory: /home/somebody/.cache/pip/wheels/da/b4/b7/500e17e7611250b358a234e4fa4010d08228ef0e46015f61ea
Successfully built grab-site autobahn wpull tornado yapsy
Failed to build html5-parser lxml
ERROR: Failed to build installable wheels for some pyproject.toml based projects (html5-parser, lxml)

Are there any ways I can troubleshoot this? Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions