Unable to install cairocffi 1.2.0 using python:3.8-alpine docker image
wla80 opened this issue · comments
It seems some python or pip version upgrades in python:3.8-alpine https://github.com/docker-library/python/commits/master/3.8/buster since March causes this issue.
Installing initially failed dependencies...
[InstallError]: File "/usr/local/lib/python3.8/site-packages/pipenv/cli/command.py", line 233, in install
[InstallError]: retcode = do_install(
[InstallError]: File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 2052, in do_install
[InstallError]: do_init(
[InstallError]: File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 1304, in do_init
[InstallError]: do_install_dependencies(
[InstallError]: File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 899, in do_install_dependencies
[InstallError]: batch_install(
[InstallError]: File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 796, in batch_install
[InstallError]: _cleanup_procs(procs, failed_deps_queue, retry=retry)
[InstallError]: File "/usr/local/lib/python3.8/site-packages/pipenv/core.py", line 703, in _cleanup_procs
[InstallError]: raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: Looking in indexes: https://pypi.python.org/simple
[pipenv.exceptions.InstallError]: Collecting cairocffi==1.2.0
[pipenv.exceptions.InstallError]: Using cached cairocffi-1.2.0.tar.gz (70 kB)
[pipenv.exceptions.InstallError]: ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]: command: /home/farm/.local/share/virtualenvs/app-lp47FrbD/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5jkjbm85/cairocffi_04d801ba60bf4502b237be3b05ff8683/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5jkjbm85/cairocffi_04d801ba60bf4502b237be3b05ff8683/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-vb2kfoye
[pipenv.exceptions.InstallError]: cwd: /tmp/pip-install-5jkjbm85/cairocffi_04d801ba60bf4502b237be3b05ff8683/
[pipenv.exceptions.InstallError]: Complete output (75 lines):
[pipenv.exceptions.InstallError]: ERROR: Command errored out with exit status 1:
[pipenv.exceptions.InstallError]: command: /home/farm/.local/share/virtualenvs/app-lp47FrbD/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-5q61v9kx/cffi_484c1e8212db421ba672e0cf1f03f7d2/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-5q61v9kx/cffi_484c1e8212db421ba672e0cf1f03f7d2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-mg75y1sy
[pipenv.exceptions.InstallError]: cwd: /tmp/pip-wheel-5q61v9kx/cffi_484c1e8212db421ba672e0cf1f03f7d2/
[pipenv.exceptions.InstallError]: Complete output (38 lines):
[pipenv.exceptions.InstallError]: running bdist_wheel
[pipenv.exceptions.InstallError]: running build
[pipenv.exceptions.InstallError]: running build_py
[pipenv.exceptions.InstallError]: creating build
[pipenv.exceptions.InstallError]: creating build/lib.linux-x86_64-3.9
[pipenv.exceptions.InstallError]: creating build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/api.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/ffiplatform.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/lock.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/error.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/cparser.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/verifier.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/recompiler.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/vengine_gen.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/pkgconfig.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/commontypes.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/__init__.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/model.py -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/_cffi_include.h -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/parse_c_type.h -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/_embedding.h -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-3.9/cffi
[pipenv.exceptions.InstallError]: warning: build_py: byte-compiling is disabled, skipping.
[pipenv.exceptions.InstallError]:
[pipenv.exceptions.InstallError]: running build_ext
[pipenv.exceptions.InstallError]: building '_cffi_backend' extension
[pipenv.exceptions.InstallError]: creating build/temp.linux-x86_64-3.9
[pipenv.exceptions.InstallError]: creating build/temp.linux-x86_64-3.9/c
[pipenv.exceptions.InstallError]: gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -DTHREAD_STACK_SIZE=0x100000 -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/home/farm/.local/share/virtualenvs/app-lp47FrbD/include -I/usr/include/python3.9 -c c/_cffi_backend.c -o build/temp.linux-x86_64-3.9/c/_cffi_backend.o
[pipenv.exceptions.InstallError]: c/_cffi_backend.c:2:10: fatal error: Python.h: No such file or directory
[pipenv.exceptions.InstallError]: 2 | #include <Python.h>
[pipenv.exceptions.InstallError]: | ^~~~~~~~~~
[pipenv.exceptions.InstallError]: compilation terminated.
[pipenv.exceptions.InstallError]: error: command '/usr/bin/gcc' failed with exit code 1
[pipenv.exceptions.InstallError]: ----------------------------------------
[pipenv.exceptions.InstallError]: ERROR: Failed building wheel for cffi
[pipenv.exceptions.InstallError]: ERROR: Failed to build one or more wheels
[pipenv.exceptions.InstallError]: Traceback (most recent call last):
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/setuptools/installer.py", line 75, in fetch_build_egg
[pipenv.exceptions.InstallError]: subprocess.check_call(cmd)
[pipenv.exceptions.InstallError]: File "/usr/lib/python3.9/subprocess.py", line 373, in check_call
[pipenv.exceptions.InstallError]: raise CalledProcessError(retcode, cmd)
[pipenv.exceptions.InstallError]: subprocess.CalledProcessError: Command '['/home/farm/.local/share/virtualenvs/app-lp47FrbD/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpzddefd3c', '--quiet', 'cffi>=1.1.0']' returned non-zero exit status 1.
[pipenv.exceptions.InstallError]:
[pipenv.exceptions.InstallError]: The above exception was the direct cause of the following exception:
[pipenv.exceptions.InstallError]:
[pipenv.exceptions.InstallError]: Traceback (most recent call last):
[pipenv.exceptions.InstallError]: File "<string>", line 1, in <module>
[pipenv.exceptions.InstallError]: File "/tmp/pip-install-5jkjbm85/cairocffi_04d801ba60bf4502b237be3b05ff8683/setup.py", line 10, in <module>
[pipenv.exceptions.InstallError]: setup(
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/setuptools/__init__.py", line 152, in setup
[pipenv.exceptions.InstallError]: _install_setup_requires(attrs)
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
[pipenv.exceptions.InstallError]: dist.fetch_build_eggs(dist.setup_requires)
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/setuptools/dist.py", line 779, in fetch_build_eggs
[pipenv.exceptions.InstallError]: resolved_dists = pkg_resources.working_set.resolve(
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/pkg_resources/__init__.py", line 766, in resolve
[pipenv.exceptions.InstallError]: dist = best[req.key] = env.best_match(
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1051, in best_match
[pipenv.exceptions.InstallError]: return self.obtain(req, installer)
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1063, in obtain
[pipenv.exceptions.InstallError]: return installer(requirement)
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/setuptools/dist.py", line 838, in fetch_build_egg
[pipenv.exceptions.InstallError]: return fetch_build_egg(self, req)
[pipenv.exceptions.InstallError]: File "/home/farm/.local/share/virtualenvs/app-lp47FrbD/lib/python3.9/site-packages/setuptools/installer.py", line 77, in fetch_build_egg
[pipenv.exceptions.InstallError]: raise DistutilsError(str(e)) from e
[pipenv.exceptions.InstallError]: distutils.errors.DistutilsError: Command '['/home/farm/.local/share/virtualenvs/app-lp47FrbD/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpzddefd3c', '--quiet', 'cffi>=1.1.0']' returned non-zero exit status 1.
[pipenv.exceptions.InstallError]: ----------------------------------------
[pipenv.exceptions.InstallError]: WARNING: Discarding https://files.pythonhosted.org/packages/84/ca/0bffed5116d21251469df200448667e90acaa5131edea869b44a3fbc73d0/cairocffi-1.2.0.tar.gz#sha256=9a979b500c64c8179fec286f337e8fe644eca2f2cd05860ce0b62d25f22ea140 (from https://pypi.org/simple/cairocffi/) (requires-python:>=3.6). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
[pipenv.exceptions.InstallError]: ERROR: Could not find a version that satisfies the requirement cairocffi==1.2.0 (from versions: 0.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.6, 0.7, 0.7.1, 0.7.2, 0.8.0, 0.8.1, 0.9.0, 1.0.0rc1, 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0)
[pipenv.exceptions.InstallError]: ERROR: No matching distribution found for cairocffi==1.2.0
ERROR: Couldn't install package: cairocffi
The current workaround for my team is to use an older version of the image: python:3.8.7-alpine
Hello!
First of all, your trace includes both /usr/local/lib/python3.8/
and /usr/lib/python3.9/
paths, that’s a bit strange.
The error you have is:
c/_cffi_backend.c:2:10: fatal error: Python.h: No such file or directory
It happens during the installation of the cffi package, a dependency of cairocffi. It probably means that you have to:
- install the
cffi
package proposed by your distribution (instead of installing and compiling it, as you do here), or - install the
python-dev
package proposed by your distribution, that includesPython.h
and that’s needed to compile cffi (among other things, as explained in cffi’s documentation).
Feel free to reopen if needed.