Finally getting around to revisiting this and giving it a go, but got an error when attempting to build via the docker-compose.yml
config after cloning the repo. Output is below:
docker-compose up -d
Creating network "jamfhooks_default" with the default driver
Creating volume "jamfhooks_static_volume" with default driver
Creating volume "jamfhooks_data" with default driver
Pulling db (postgres:)...
latest: Pulling from library/postgres
8d691f585fa8: Pull complete
c991029393ff: Pull complete
d104c69c9175: Pull complete
0a7fb105514d: Pull complete
c3d11c21cb77: Pull complete
4536342c5414: Pull complete
435bcefd4e05: Pull complete
36b0869ae6f9: Pull complete
5ac554d17b78: Pull complete
61f0a5a69de4: Pull complete
f3613132ea9e: Pull complete
8d022c339281: Pull complete
29616bd9cc5c: Pull complete
6283090fa09d: Pull complete
Digest: sha256:a4a944788084a92bcaff6180833428f17cceb610e43c828b3a42345b33a608a7
Status: Downloaded newer image for postgres:latest
Building web
Step 1/10 : FROM python:3
3: Pulling from library/python
c7b7d16361e0: Pull complete
b7a128769df1: Pull complete
1128949d0793: Pull complete
667692510b70: Pull complete
bed4ecf88e6a: Pull complete
8a8c75f3996a: Pull complete
bfbf6161579f: Pull complete
6e3c2947832c: Pull complete
5bab73b08276: Pull complete
Digest: sha256:514a95a32b86cafafefcecc28673bb647d44c5aadf06203d39c43b9c3f61ed52
Status: Downloaded newer image for python:3
---> d6a7b0694364
Step 2/10 : MAINTAINER Maintainer Alex Snyder
---> Running in 328f5c6345c3
Removing intermediate container 328f5c6345c3
---> 9e8a80a57c00
Step 3/10 : ENV PYTHONUNBUFFERED 1
---> Running in 8d2da5267c4d
Removing intermediate container 8d2da5267c4d
---> dda49e3b6036
Step 4/10 : RUN mkdir /logs
---> Running in 20aee53a4f6b
Removing intermediate container 20aee53a4f6b
---> 2e09e898db51
Step 5/10 : RUN mkdir /code
---> Running in 61cda3fbe275
Removing intermediate container 61cda3fbe275
---> 7351012887a1
Step 6/10 : WORKDIR /code
---> Running in b9aa7cd2377c
Removing intermediate container b9aa7cd2377c
---> 8ce7b02ff77b
Step 7/10 : COPY requirements.txt /code/
---> bc250be6308c
Step 8/10 : RUN pip install -r requirements.txt
---> Running in 38f38775f36c
Collecting argon2==0.1.10
Downloading https://files.pythonhosted.org/packages/5c/55/94605d5bfa140601fde256f548ed1733a5327f2d7d159b60a727e8613170/argon2-0.1.10.tar.gz
Collecting argon2-cffi==19.1.0
Downloading https://files.pythonhosted.org/packages/1e/14/d7fe69cb4efad2926f85d0ec4736f29fbb6995e2a5bf5501b3cd0173d32b/argon2_cffi-19.1.0-cp34-abi3-manylinux1_x86_64.whl (93kB)
Collecting certifi==2018.8.24
Downloading https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl (147kB)
Collecting cffi==1.11.5
Downloading https://files.pythonhosted.org/packages/e7/a7/4cd50e57cc6f436f1cc3a7e8fa700ff9b8b4d471620629074913e3735fb2/cffi-1.11.5.tar.gz (438kB)
Collecting chardet==3.0.4
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
Collecting django>=2.1.6
Downloading https://files.pythonhosted.org/packages/b2/79/df0ffea7bf1e02c073c2633702c90f4384645c40a1dd09a308e02ef0c817/Django-2.2.6-py3-none-any.whl (7.5MB)
Collecting django-bcrypt==0.9.2
Downloading https://files.pythonhosted.org/packages/22/05/c18aa9c41fc6efec2cc1662e0f6bb0fb81a7bbf52d14f392b661e28c9464/django-bcrypt-0.9.2.tar.gz
Collecting django-hstore==1.4.2
Downloading https://files.pythonhosted.org/packages/8c/2a/d934249fef3e3918fb9f32e2006b01d8bb16787597ad6715fdedae11245b/django_hstore-1.4.2-py2.py3-none-any.whl (63kB)
Collecting gunicorn==19.9.0
Downloading https://files.pythonhosted.org/packages/8c/da/b8dd8deb741bff556db53902d4706774c8e1e67265f69528c14c003644e6/gunicorn-19.9.0-py2.py3-none-any.whl (112kB)
Collecting idna==2.8
Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
Collecting ipaddress==1.0.22
Downloading https://files.pythonhosted.org/packages/fc/d0/7fc3a811e011d4b388be48a0e381db8d990042df54aa4ef4599a31d39853/ipaddress-1.0.22-py2.py3-none-any.whl
Collecting psycopg2==2.7.6.1
Downloading https://files.pythonhosted.org/packages/c0/07/93573b97ed61b6fb907c8439bf58f09957564cf7c39612cef36c547e68c6/psycopg2-2.7.6.1.tar.gz (427kB)
Collecting psycopg2-binary==2.8
Downloading https://files.pythonhosted.org/packages/45/81/ce42d2f87b81616c33284ea52e0b914e45dcae6093655d53602d515aaf57/psycopg2-binary-2.8.tar.gz (368kB)
Collecting py-bcrypt==0.4
Downloading https://files.pythonhosted.org/packages/68/b1/1c3068c5c4d2e35c48b38dcc865301ebfdf45f54507086ac65ced1fd3b3d/py-bcrypt-0.4.tar.gz
Collecting pycparser==2.19
Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB)
Collecting pytz==2018.9
Downloading https://files.pythonhosted.org/packages/61/28/1d3920e4d1d50b19bc5d24398a7cd85cc7b9a75a490570d5a30c57622d34/pytz-2018.9-py2.py3-none-any.whl (510kB)
Collecting requests>=2.21.0
Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
Collecting simplejson==3.16.0
Downloading https://files.pythonhosted.org/packages/e3/24/c35fb1c1c315fc0fffe61ea00d3f88e85469004713dab488dee4f35b0aff/simplejson-3.16.0.tar.gz (81kB)
Collecting six==1.12.0
Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting snipeit==0.10
Downloading https://files.pythonhosted.org/packages/15/63/7b84263080e8dec327506d9947e6b39f4e79c35c0e55a82bb0872bd2a97a/snipeit-0.10.tar.gz
Collecting urllib3==1.24.3
Downloading https://files.pythonhosted.org/packages/01/11/525b02e4acc0c747de8b6ccdab376331597c569c42ea66ab0a1dbd36eca2/urllib3-1.24.3-py2.py3-none-any.whl (118kB)
Collecting sqlparse
Downloading https://files.pythonhosted.org/packages/ef/53/900f7d2a54557c6a37886585a91336520e5539e3ae2423ff1102daf4f3a7/sqlparse-0.3.0-py2.py3-none-any.whl
Building wheels for collected packages: argon2, cffi, django-bcrypt, psycopg2, psycopg2-binary, py-bcrypt, pycparser, simplejson, snipeit
Building wheel for argon2 (setup.py): started
Building wheel for argon2 (setup.py): finished with status 'done'
Created wheel for argon2: filename=argon2-0.1.10-cp38-cp38-linux_x86_64.whl size=64897 sha256=6f8593ca56efdda9cd45d596979a19b03fc388f370ae2a4d4d4a2222ea36f8e1
Stored in directory: /root/.cache/pip/wheels/6b/3a/5d/937af1c2ff3cb5bd41acf611721093d3c693a97986d4149b18
Building wheel for cffi (setup.py): started
Building wheel for cffi (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ri1nttey/cffi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ri1nttey/cffi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-etwbtiow --python-tag cp38
cwd: /tmp/pip-install-ri1nttey/cffi/
Complete output (41 lines):
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/cffi
copying cffi/verifier.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/cparser.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/model.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/recompiler.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/lock.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/api.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/commontypes.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/__init__.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/error.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.8/cffi
copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.8/cffi
copying cffi/_embedding.h -> build/lib.linux-x86_64-3.8/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.8/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/c
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/local/include/python3.8 -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.8/c/_cffi_backend.o
c/_cffi_backend.c: In function ‘b_do_dlopen’:
c/_cffi_backend.c:4197:31: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
*p_printable_filename = PyText_AsUTF8(s);
^
In file included from c/cffi1_module.c:20,
from c/_cffi_backend.c:7370:
c/call_python.c: In function ‘_get_interpstate_dict’:
c/call_python.c:20:30: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
builtins = tstate->interp->builtins;
^~
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for cffi
Running setup.py clean for cffi
Building wheel for django-bcrypt (setup.py): started
Building wheel for django-bcrypt (setup.py): finished with status 'done'
Created wheel for django-bcrypt: filename=django_bcrypt-0.9.2-cp38-none-any.whl size=4827 sha256=361a18fee9c767df48f930b9dc279446ef4310ecf9a78dd7fefc7f225ac16e03
Stored in directory: /root/.cache/pip/wheels/53/ec/8a/4241efbdfdcd644616bb9faddec6f7a9a2dc643d600fa90296
Building wheel for psycopg2 (setup.py): started
Building wheel for psycopg2 (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ri1nttey/psycopg2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ri1nttey/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-lkrn3l78 --python-tag cp38
cwd: /tmp/pip-install-ri1nttey/psycopg2/
Complete output (72 lines):
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/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/psycopg1.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/__init__.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-3.8/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-3.8/psycopg2
creating build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_quote.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_types_basic.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_dates.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_types_extras.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_bug_gc.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/testutils.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_green.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_with.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_cursor.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_fast_executemany.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_cancel.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_notify.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_async.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/dbapi20.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_module.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_connection.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_replication.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_transaction.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_errcodes.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/testconfig.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_lobject.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_ipaddress.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_copy.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/__init__.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_bugX000.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_async_keyword.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
copying tests/test_sql.py -> build/lib.linux-x86_64-3.8/psycopg2/tests
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/psycopg
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=110005 -DHAVE_LO64=1 -I/usr/local/include/python3.8 -I. -I/usr/include/postgresql -I/usr/include/postgresql/11/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.8/psycopg/psycopgmodule.o -Wdeclaration-after-statement
psycopg/psycopgmodule.c: In function ‘psyco_is_main_interp’:
psycopg/psycopgmodule.c:689:18: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
while (interp->next)
^~
It appears you are missing some prerequisite to build the package from source.
You may install a binary package by installing 'psycopg2-binary' from PyPI.
If you want to install psycopg2 from source, please install the packages
required for the build and try again.
For further information please check the 'doc/src/install.rst' file (also at
<http://initd.org/psycopg/docs/install.html>).
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for psycopg2
Running setup.py clean for psycopg2
Building wheel for psycopg2-binary (setup.py): started
Building wheel for psycopg2-binary (setup.py): finished with status 'done'
Created wheel for psycopg2-binary: filename=psycopg2_binary-2.8-cp38-cp38-linux_x86_64.whl size=496007 sha256=a4aeb25f386c4152c9f3a7b0d5e651f399d1a163515810b19bd62b28d78dd30c
Stored in directory: /root/.cache/pip/wheels/3a/f1/87/db7e29a1b196355ab4cd82cdf3d8c2cffc40d9ef3a4107359e
Building wheel for py-bcrypt (setup.py): started
Building wheel for py-bcrypt (setup.py): finished with status 'done'
Created wheel for py-bcrypt: filename=py_bcrypt-0.4-cp38-cp38-linux_x86_64.whl size=48315 sha256=e50b1b06b88a29243092ba7b01105faaf1d7b45fb182b621c03a671fee70249d
Stored in directory: /root/.cache/pip/wheels/9f/5a/0e/0b713b1d6dd6a3dd7bf689d920a1c955f3d785c6f1e72369ce
Building wheel for pycparser (setup.py): started
Building wheel for pycparser (setup.py): finished with status 'done'
Created wheel for pycparser: filename=pycparser-2.19-py2.py3-none-any.whl size=111029 sha256=b0e0479b29b195eb248a7dd49aff279ed34cd9264976fec50a014dbe080fcc5c
Stored in directory: /root/.cache/pip/wheels/f2/9a/90/de94f8556265ddc9d9c8b271b0f63e57b26fb1d67a45564511
Building wheel for simplejson (setup.py): started
Building wheel for simplejson (setup.py): finished with status 'done'
Created wheel for simplejson: filename=simplejson-3.16.0-cp38-cp38-linux_x86_64.whl size=136934 sha256=b8b1a9ad3ba1175152e077c737289ac65930d002925db4935531e88991f7ccef
Stored in directory: /root/.cache/pip/wheels/5d/1a/1e/0350bb3df3e74215cd91325344cc86c2c691f5306eb4d22c77
Building wheel for snipeit (setup.py): started
Building wheel for snipeit (setup.py): finished with status 'done'
Created wheel for snipeit: filename=snipeit-0.10-cp38-none-any.whl size=9087 sha256=8febf587e15f84e3ae765e488f77a90bbb91ffbd76d77f954a3d1b1f3145633a
Stored in directory: /root/.cache/pip/wheels/46/47/cc/2630f2268e05a176dc44a56e8aa5845b55ca1b31cd0c9e402f
Successfully built argon2 django-bcrypt psycopg2-binary py-bcrypt pycparser simplejson snipeit
Failed to build cffi psycopg2
Installing collected packages: argon2, pycparser, cffi, six, argon2-cffi, certifi, chardet, sqlparse, pytz, django, py-bcrypt, django-bcrypt, django-hstore, gunicorn, idna, ipaddress, psycopg2, psycopg2-binary, urllib3, requests, simplejson, snipeit
Running setup.py install for cffi: started
Running setup.py install for cffi: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ri1nttey/cffi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ri1nttey/cffi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-te7lk6c7/install-record.txt --single-version-externally-managed --compile
cwd: /tmp/pip-install-ri1nttey/cffi/
Complete output (41 lines):
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/cffi
copying cffi/verifier.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/cparser.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/model.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/recompiler.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/lock.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/api.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/commontypes.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/__init__.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/error.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.8/cffi
copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.8/cffi
copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.8/cffi
copying cffi/_embedding.h -> build/lib.linux-x86_64-3.8/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.8/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/c
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/local/include/python3.8 -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.8/c/_cffi_backend.o
c/_cffi_backend.c: In function ‘b_do_dlopen’:
c/_cffi_backend.c:4197:31: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
*p_printable_filename = PyText_AsUTF8(s);
^
In file included from c/cffi1_module.c:20,
from c/_cffi_backend.c:7370:
c/call_python.c: In function ‘_get_interpstate_dict’:
c/call_python.c:20:30: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
builtins = tstate->interp->builtins;
^~
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ri1nttey/cffi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ri1nttey/cffi/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-te7lk6c7/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
ERROR: Service 'web' failed to build: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1