Error failed building wheel for pycairo

This seems to be related to @chrissimpkins issue #106 @thundernixon and I tried pip install --upgrade git+https://github.com/googlefonts/gftools and ended with up the following error. Failed buildi...

Still having problems here, now on a fresh setup of my own.

I’m trying to set up dependencies to build, fix, and check fonts with fontmake, gftools, and fontbakery, as documented at https://github.com/thundernixon/googlefonts-qa-template. However, I’m getting caught in the step of installing gftools, again on this error.

long command line quote

(venv) 
~/type-repos/opensans  master ✗                                                                                                                                
▶ pip install -U git+https://github.com/googlefonts/gftools
Collecting git+https://github.com/googlefonts/gftools
  Cloning https://github.com/googlefonts/gftools to /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-req-build-kjsaowvw
  Running command git clone -q https://github.com/googlefonts/gftools /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-req-build-kjsaowvw
  Running command git submodule update --init --recursive -q
Requirement already satisfied, skipping upgrade: setuptools in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (41.0.1)
Requirement already satisfied, skipping upgrade: FontTools in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (3.41.0)
Requirement already satisfied, skipping upgrade: Flask in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (1.0.2)
Requirement already satisfied, skipping upgrade: absl-py in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (0.7.1) 
Requirement already satisfied, skipping upgrade: glyphsLib in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (3.4.0b1)
Requirement already satisfied, skipping upgrade: pillow in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (6.0.0)
Requirement already satisfied, skipping upgrade: protobuf in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (3.7.1)
Requirement already satisfied, skipping upgrade: requests in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (2.21.0)
Requirement already satisfied, skipping upgrade: tabulate in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (0.8.3)
Requirement already satisfied, skipping upgrade: unidecode in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (1.0.23)
Requirement already satisfied, skipping upgrade: fontbakery in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (0.7.4)
Collecting fontdiffenator (from gftools==0.2.0)
Collecting gfdiffbrowsers (from gftools==0.2.0)
Requirement already satisfied, skipping upgrade: Jinja2>=2.10 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (2.10.1)
Requirement already satisfied, skipping upgrade: itsdangerous>=0.24 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (1.1.0)
Requirement already satisfied, skipping upgrade: click>=5.1 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (7.0)
Requirement already satisfied, skipping upgrade: Werkzeug>=0.14 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (0.15.2)
Requirement already satisfied, skipping upgrade: six in ./venv/lib/python3.7/site-packages (from absl-py->gftools==0.2.0) (1.12.0)
Requirement already satisfied, skipping upgrade: defcon>=0.3.0 in ./venv/lib/python3.7/site-packages (from glyphsLib->gftools==0.2.0) (0.6.0)
Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (2.8)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (2019.3.9)
Requirement already satisfied, skipping upgrade: urllib3<1.25,>=1.21.1 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (1.24.3)
Requirement already satisfied, skipping upgrade: chardet<3.1.0,>=3.0.2 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (3.0.4)
Requirement already satisfied, skipping upgrade: recommonmark in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.5.0)
Requirement already satisfied, skipping upgrade: sphinx>=1.4 in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (2.0.1)
Requirement already satisfied, skipping upgrade: lxml in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (4.3.3)
Requirement already satisfied, skipping upgrade: opentype-sanitizer>=7.1.9 in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (7.1.9)
Requirement already satisfied, skipping upgrade: sphinx-rtd-theme in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.4.3)
Requirement already satisfied, skipping upgrade: ufolint in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.3.5)
Requirement already satisfied, skipping upgrade: font-v in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.7.1)
Requirement already satisfied, skipping upgrade: ttfautohint-py in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.4.3)
Requirement already satisfied, skipping upgrade: beautifulsoup4 in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (4.7.1)
Requirement already satisfied, skipping upgrade: uharfbuzz>=0.3.0 in ./venv/lib/python3.7/site-packages (from fontdiffenator->gftools==0.2.0) (0.5.0)
Collecting pycairo>=1.18.0 (from fontdiffenator->gftools==0.2.0)
  Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Requirement already satisfied, skipping upgrade: freetype-py>=2.0.0.post6 in ./venv/lib/python3.7/site-packages (from fontdiffenator->gftools==0.2.0) (2.1.0.post1)
Collecting nose==1.3.7 (from gfdiffbrowsers->gftools==0.2.0)
  Using cached https://files.pythonhosted.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl
Collecting olefile==0.44 (from gfdiffbrowsers->gftools==0.2.0)
Collecting pybrowserstack-screenshots==0.1 (from gfdiffbrowsers->gftools==0.2.0)
Collecting simplejson==3.12.0 (from gfdiffbrowsers->gftools==0.2.0)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in ./venv/lib/python3.7/site-packages (from Jinja2>=2.10->Flask->gftools==0.2.0) (1.1.1)
Requirement already satisfied, skipping upgrade: commonmark>=0.7.3 in ./venv/lib/python3.7/site-packages (from recommonmark->fontbakery->gftools==0.2.0) (0.9.0)
Requirement already satisfied, skipping upgrade: docutils>=0.11 in ./venv/lib/python3.7/site-packages (from recommonmark->fontbakery->gftools==0.2.0) (0.14)
Requirement already satisfied, skipping upgrade: sphinxcontrib-applehelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.1)
Requirement already satisfied, skipping upgrade: packaging in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (19.0)
Requirement already satisfied, skipping upgrade: sphinxcontrib-devhelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.1)
Requirement already satisfied, skipping upgrade: sphinxcontrib-qthelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.2)
Requirement already satisfied, skipping upgrade: Pygments>=2.0 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (2.4.0)
Requirement already satisfied, skipping upgrade: snowballstemmer>=1.1 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.2.1)
Requirement already satisfied, skipping upgrade: sphinxcontrib-htmlhelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.2)
Requirement already satisfied, skipping upgrade: imagesize in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.1.0)
Requirement already satisfied, skipping upgrade: alabaster<0.8,>=0.7 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (0.7.12)
Requirement already satisfied, skipping upgrade: babel!=2.0,>=1.3 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (2.6.0)
Requirement already satisfied, skipping upgrade: sphinxcontrib-serializinghtml in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.1.3)
Requirement already satisfied, skipping upgrade: sphinxcontrib-jsmath in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.1)
Requirement already satisfied, skipping upgrade: commandlines in ./venv/lib/python3.7/site-packages (from ufolint->fontbakery->gftools==0.2.0) (0.4.1)
Requirement already satisfied, skipping upgrade: ufoLib>=2.2.0 in ./venv/lib/python3.7/site-packages (from ufolint->fontbakery->gftools==0.2.0) (2.3.2)
Requirement already satisfied, skipping upgrade: gitpython in ./venv/lib/python3.7/site-packages (from font-v->fontbakery->gftools==0.2.0) (2.1.11)
Requirement already satisfied, skipping upgrade: soupsieve>=1.2 in ./venv/lib/python3.7/site-packages (from beautifulsoup4->fontbakery->gftools==0.2.0) (1.9.1)
Requirement already satisfied, skipping upgrade: future in ./venv/lib/python3.7/site-packages (from commonmark>=0.7.3->recommonmark->fontbakery->gftools==0.2.0) (0.17.1)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in ./venv/lib/python3.7/site-packages (from packaging->sphinx>=1.4->fontbakery->gftools==0.2.0) (2.4.0)
Requirement already satisfied, skipping upgrade: pytz>=0a in ./venv/lib/python3.7/site-packages (from babel!=2.0,>=1.3->sphinx>=1.4->fontbakery->gftools==0.2.0) (2019.1)
Requirement already satisfied, skipping upgrade: gitdb2>=2.0.0 in ./venv/lib/python3.7/site-packages (from gitpython->font-v->fontbakery->gftools==0.2.0) (2.0.5)
Requirement already satisfied, skipping upgrade: smmap2>=2.0.0 in ./venv/lib/python3.7/site-packages (from gitdb2>=2.0.0->gitpython->font-v->fontbakery->gftools==0.2.0) (2.0.5)
Building wheels for collected packages: gftools, pycairo
  Building wheel for gftools (setup.py) ... done
  Stored in directory: /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-ephem-wheel-cache-0hvk0lg1/wheels/88/d8/f2/06cc29328953f614e7f3048be8b31c3787b7bc60b290dab235
  Building wheel for pycairo (setup.py) ... error
  ERROR: Complete output from command /Users/stephennixon/type-repos/opensans/venv/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-oxq8nrrj/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-wheel-8u002c4x --python-tag cp37:
  ERROR: running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.14-x86_64-3.7
  creating build/lib.macosx-10.14-x86_64-3.7/cairo
  copying cairo/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/cairo
  copying cairo/__init__.pyi -> build/lib.macosx-10.14-x86_64-3.7/cairo
  copying cairo/py.typed -> build/lib.macosx-10.14-x86_64-3.7/cairo
  running build_ext
  Package libffi was not found in the pkg-config search path.
  Perhaps you should add the directory containing `libffi.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'libffi', required by 'gobject-2.0', not found
  Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for pycairo
  Running setup.py clean for pycairo
Successfully built gftools
Failed to build pycairo
ERROR: gfdiffbrowsers 0.1.4 has requirement Pillow==5.4.1, but you'll have pillow 6.0.0 which is incompatible.
ERROR: gfdiffbrowsers 0.1.4 has requirement urllib3==1.24.1, but you'll have urllib3 1.24.3 which is incompatible.
Installing collected packages: pycairo, fontdiffenator, nose, olefile, simplejson, pybrowserstack-screenshots, gfdiffbrowsers, gftools
  Running setup.py install for pycairo ... error
    ERROR: Complete output from command /Users/stephennixon/type-repos/opensans/venv/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-oxq8nrrj/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-record-b_z3re5w/install-record.txt --single-version-externally-managed --compile --install-headers /Users/stephennixon/type-repos/opensans/venv/bin/../include/site/python3.7/pycairo:
    ERROR: running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.14-x86_64-3.7
    creating build/lib.macosx-10.14-x86_64-3.7/cairo
    copying cairo/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/cairo
    copying cairo/__init__.pyi -> build/lib.macosx-10.14-x86_64-3.7/cairo
    copying cairo/py.typed -> build/lib.macosx-10.14-x86_64-3.7/cairo
    running build_ext
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    Package 'libffi', required by 'gobject-2.0', not found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command "/Users/stephennixon/type-repos/opensans/venv/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-oxq8nrrj/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-record-b_z3re5w/install-record.txt --single-version-externally-managed --compile --install-headers /Users/stephennixon/type-repos/opensans/venv/bin/../include/site/python3.7/pycairo" failed with error code 1 in /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-oxq8nrrj/pycairo/

I’ve followed Chris’s advice above. In a separate terminal, I did this:

▶ brew install cairo pkg-config freetype harfbuzz
Warning: cairo 1.16.0 is already installed and up-to-date
To reinstall 1.16.0, run `brew reinstall cairo`
Warning: freetype 2.10.0 is already installed and up-to-date
To reinstall 2.10.0, run `brew reinstall freetype`
Warning: harfbuzz 2.4.0_1 is already installed and up-to-date
To reinstall 2.4.0_1, run `brew reinstall harfbuzz`
==> Downloading https://homebrew.bintray.com/bottles/pkg-config-0.29.2.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/85/85e5bbffb3424f22cd1bf54b69161110481bab100f9abea54e0a0f00fcf761b9?__gda__=exp=1557351589~hmac=6a52b4db802a133eb30bfbcc5ba0b90a9925eb839a30cf6353a8b4d77737fab5&response-content-disposition=attachment%3Bfilename%3D%22pkg-con
######################################################################## 100.0%
==> Pouring pkg-config-0.29.2.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/pkg-config/0.29.2: 11 files, 627.2KB

…then checked things back in my venv:

(venv) 
~/type-repos/opensans  master ✗                                                                                                                                
▶ which pkg-config
/usr/local/bin/pkg-config
(venv) 
~/type-repos/opensans  master ✗                                                                                                                                 
▶ /usr/local/bin/pkg-config --version
0.29.2

I also installed the requested versions of dependencies:

▶ pip install -U Pillow==5.4.1 idna==2.8 requests==2.21.0 urllib3==1.24.1

…but ended up with a very similar result as before:

long command line quote

(venv) 
~/type-repos/opensans  master ✗                                                                                                                                
▶ pip install -U git+https://github.com/googlefonts/gftools              
Collecting git+https://github.com/googlefonts/gftools
  Cloning https://github.com/googlefonts/gftools to /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-req-build-saow4mjy
  Running command git clone -q https://github.com/googlefonts/gftools /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-req-build-saow4mjy
  Running command git submodule update --init --recursive -q
Requirement already satisfied, skipping upgrade: setuptools in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (41.0.1)
Requirement already satisfied, skipping upgrade: FontTools in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (3.41.0)
Requirement already satisfied, skipping upgrade: Flask in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (1.0.2)
Requirement already satisfied, skipping upgrade: absl-py in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (0.7.1)
Requirement already satisfied, skipping upgrade: glyphsLib in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (3.4.0b1)
Requirement already satisfied, skipping upgrade: pillow in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (5.4.1)
Requirement already satisfied, skipping upgrade: protobuf in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (3.7.1)
Requirement already satisfied, skipping upgrade: requests in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (2.21.0)
Requirement already satisfied, skipping upgrade: tabulate in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (0.8.3)
Requirement already satisfied, skipping upgrade: unidecode in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (1.0.23)
Requirement already satisfied, skipping upgrade: fontbakery in ./venv/lib/python3.7/site-packages (from gftools==0.2.0) (0.7.4)
Collecting fontdiffenator (from gftools==0.2.0)
Collecting gfdiffbrowsers (from gftools==0.2.0)
Requirement already satisfied, skipping upgrade: Werkzeug>=0.14 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (0.15.2)
Requirement already satisfied, skipping upgrade: Jinja2>=2.10 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (2.10.1)
Requirement already satisfied, skipping upgrade: click>=5.1 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (7.0)
Requirement already satisfied, skipping upgrade: itsdangerous>=0.24 in ./venv/lib/python3.7/site-packages (from Flask->gftools==0.2.0) (1.1.0)
Requirement already satisfied, skipping upgrade: six in ./venv/lib/python3.7/site-packages (from absl-py->gftools==0.2.0) (1.12.0)
Requirement already satisfied, skipping upgrade: defcon>=0.3.0 in ./venv/lib/python3.7/site-packages (from glyphsLib->gftools==0.2.0) (0.6.0)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (2019.3.9)
Requirement already satisfied, skipping upgrade: chardet<3.1.0,>=3.0.2 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (3.0.4)
Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (2.8)
Requirement already satisfied, skipping upgrade: urllib3<1.25,>=1.21.1 in ./venv/lib/python3.7/site-packages (from requests->gftools==0.2.0) (1.24.1)
Requirement already satisfied, skipping upgrade: lxml in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (4.3.3)
Requirement already satisfied, skipping upgrade: sphinx>=1.4 in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (2.0.1)
Requirement already satisfied, skipping upgrade: font-v in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.7.1)
Requirement already satisfied, skipping upgrade: recommonmark in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.5.0)
Requirement already satisfied, skipping upgrade: ttfautohint-py in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.4.3)
Requirement already satisfied, skipping upgrade: sphinx-rtd-theme in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.4.3)
Requirement already satisfied, skipping upgrade: ufolint in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (0.3.5)
Requirement already satisfied, skipping upgrade: opentype-sanitizer>=7.1.9 in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (7.1.9)
Requirement already satisfied, skipping upgrade: beautifulsoup4 in ./venv/lib/python3.7/site-packages (from fontbakery->gftools==0.2.0) (4.7.1)
Requirement already satisfied, skipping upgrade: freetype-py>=2.0.0.post6 in ./venv/lib/python3.7/site-packages (from fontdiffenator->gftools==0.2.0) (2.1.0.post1)
Collecting pycairo>=1.18.0 (from fontdiffenator->gftools==0.2.0)
  Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Requirement already satisfied, skipping upgrade: uharfbuzz>=0.3.0 in ./venv/lib/python3.7/site-packages (from fontdiffenator->gftools==0.2.0) (0.5.0)
Collecting simplejson==3.12.0 (from gfdiffbrowsers->gftools==0.2.0)
Collecting olefile==0.44 (from gfdiffbrowsers->gftools==0.2.0)
Collecting pybrowserstack-screenshots==0.1 (from gfdiffbrowsers->gftools==0.2.0)
Collecting nose==1.3.7 (from gfdiffbrowsers->gftools==0.2.0)
  Using cached https://files.pythonhosted.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in ./venv/lib/python3.7/site-packages (from Jinja2>=2.10->Flask->gftools==0.2.0) (1.1.1)
Requirement already satisfied, skipping upgrade: alabaster<0.8,>=0.7 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (0.7.12)
Requirement already satisfied, skipping upgrade: sphinxcontrib-jsmath in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.1)
Requirement already satisfied, skipping upgrade: babel!=2.0,>=1.3 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (2.6.0)
Requirement already satisfied, skipping upgrade: docutils>=0.12 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (0.14)
Requirement already satisfied, skipping upgrade: sphinxcontrib-qthelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.2)
Requirement already satisfied, skipping upgrade: sphinxcontrib-htmlhelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.2)
Requirement already satisfied, skipping upgrade: sphinxcontrib-serializinghtml in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.1.3)
Requirement already satisfied, skipping upgrade: Pygments>=2.0 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (2.4.0)
Requirement already satisfied, skipping upgrade: sphinxcontrib-devhelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.1)
Requirement already satisfied, skipping upgrade: packaging in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (19.0)
Requirement already satisfied, skipping upgrade: sphinxcontrib-applehelp in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.0.1)
Requirement already satisfied, skipping upgrade: imagesize in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.1.0)
Requirement already satisfied, skipping upgrade: snowballstemmer>=1.1 in ./venv/lib/python3.7/site-packages (from sphinx>=1.4->fontbakery->gftools==0.2.0) (1.2.1)
Requirement already satisfied, skipping upgrade: gitpython in ./venv/lib/python3.7/site-packages (from font-v->fontbakery->gftools==0.2.0) (2.1.11)
Requirement already satisfied, skipping upgrade: commonmark>=0.7.3 in ./venv/lib/python3.7/site-packages (from recommonmark->fontbakery->gftools==0.2.0) (0.9.0)
Requirement already satisfied, skipping upgrade: commandlines in ./venv/lib/python3.7/site-packages (from ufolint->fontbakery->gftools==0.2.0) (0.4.1)
Requirement already satisfied, skipping upgrade: ufoLib>=2.2.0 in ./venv/lib/python3.7/site-packages (from ufolint->fontbakery->gftools==0.2.0) (2.3.2)
Requirement already satisfied, skipping upgrade: soupsieve>=1.2 in ./venv/lib/python3.7/site-packages (from beautifulsoup4->fontbakery->gftools==0.2.0) (1.9.1)
Requirement already satisfied, skipping upgrade: pytz>=0a in ./venv/lib/python3.7/site-packages (from babel!=2.0,>=1.3->sphinx>=1.4->fontbakery->gftools==0.2.0) (2019.1)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in ./venv/lib/python3.7/site-packages (from packaging->sphinx>=1.4->fontbakery->gftools==0.2.0) (2.4.0)
Requirement already satisfied, skipping upgrade: gitdb2>=2.0.0 in ./venv/lib/python3.7/site-packages (from gitpython->font-v->fontbakery->gftools==0.2.0) (2.0.5)
Requirement already satisfied, skipping upgrade: future in ./venv/lib/python3.7/site-packages (from commonmark>=0.7.3->recommonmark->fontbakery->gftools==0.2.0) (0.17.1)
Requirement already satisfied, skipping upgrade: smmap2>=2.0.0 in ./venv/lib/python3.7/site-packages (from gitdb2>=2.0.0->gitpython->font-v->fontbakery->gftools==0.2.0) (2.0.5)
Building wheels for collected packages: gftools, pycairo
  Building wheel for gftools (setup.py) ... done
  Stored in directory: /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-ephem-wheel-cache-kxwchf2p/wheels/88/d8/f2/06cc29328953f614e7f3048be8b31c3787b7bc60b290dab235
  Building wheel for pycairo (setup.py) ... error
  ERROR: Complete output from command /Users/stephennixon/type-repos/opensans/venv/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-ms0gj3lt/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-wheel-n440_9nk --python-tag cp37:
  ERROR: running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.14-x86_64-3.7
  creating build/lib.macosx-10.14-x86_64-3.7/cairo
  copying cairo/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/cairo
  copying cairo/__init__.pyi -> build/lib.macosx-10.14-x86_64-3.7/cairo
  copying cairo/py.typed -> build/lib.macosx-10.14-x86_64-3.7/cairo
  running build_ext
  Package libffi was not found in the pkg-config search path.
  Perhaps you should add the directory containing `libffi.pc'
  to the PKG_CONFIG_PATH environment variable
  Package 'libffi', required by 'gobject-2.0', not found
  Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for pycairo
  Running setup.py clean for pycairo
Successfully built gftools
Failed to build pycairo
Installing collected packages: pycairo, fontdiffenator, simplejson, olefile, pybrowserstack-screenshots, nose, gfdiffbrowsers, gftools
  Running setup.py install for pycairo ... error
    ERROR: Complete output from command /Users/stephennixon/type-repos/opensans/venv/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-ms0gj3lt/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-record-84y2653z/install-record.txt --single-version-externally-managed --compile --install-headers /Users/stephennixon/type-repos/opensans/venv/bin/../include/site/python3.7/pycairo:
    ERROR: running install
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.14-x86_64-3.7
    creating build/lib.macosx-10.14-x86_64-3.7/cairo
    copying cairo/__init__.py -> build/lib.macosx-10.14-x86_64-3.7/cairo
    copying cairo/__init__.pyi -> build/lib.macosx-10.14-x86_64-3.7/cairo
    copying cairo/py.typed -> build/lib.macosx-10.14-x86_64-3.7/cairo
    running build_ext
    Package libffi was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libffi.pc'
    to the PKG_CONFIG_PATH environment variable
    Package 'libffi', required by 'gobject-2.0', not found
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command "/Users/stephennixon/type-repos/opensans/venv/bin/python3.7 -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-ms0gj3lt/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-record-84y2653z/install-record.txt --single-version-externally-managed --compile --install-headers /Users/stephennixon/type-repos/opensans/venv/bin/../include/site/python3.7/pycairo" failed with error code 1 in /private/var/folders/sr/fzxs628x5gbgjtwscngjdcqh0000gn/T/pip-install-ms0gj3lt/pycairo/

I noticed three lines in particular:

Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libffi', required by 'gobject-2.0', not found

So I went into a new terminal and typed:

▶ brew install libffi
Warning: libffi 3.2.1 is already installed and up-to-date
To reinstall 3.2.1, run `brew reinstall libffi`

Things still didn’t work, so I ran:

I followed the advice here and opened my ~/.bash_profile to add:

export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"

I then tried to install gftools again, and it failed again with a message about incorrect dependency versions. So, from the numbers it requested, I ran another pip install:

(venv) 
~/type-repos/opensans  master ✗                                                                                                                                
▶ pip install -U Pillow==5.4.1 idna==2.8 requests==2.21.0 urllib3==1.24.1

Then tried to install gftools once more. And now gftools seems to have installed correctly.

So, @bghryct, I’m not sure if you’ve worked on this again yet, but it seems that for me, the magic step was brew reinstall libffi. However, the main thing was reading through the error messages and trying to follow the suggestions. Not ideal, but hopefully this helps a bit.

Issue

Error while installing manimce, I have been trying to install manimce library on windows subsystem for linux and after running

pip install manimce
Collecting manimce
  Downloading manimce-0.1.1.post2-py3-none-any.whl (249 kB)
     |████████████████████████████████| 249 kB 257 kB/s
Collecting Pillow
  Using cached Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
Collecting scipy
  Using cached scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.3 MB)
Collecting colour
  Using cached colour-0.1.5-py2.py3-none-any.whl (23 kB)
Collecting pangocairocffi<0.5.0,>=0.4.0
  Downloading pangocairocffi-0.4.0.tar.gz (17 kB)
  Preparing metadata (setup.py) ... done
Collecting numpy
  Using cached numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
Collecting pydub
  Using cached pydub-0.25.1-py2.py3-none-any.whl (32 kB)
Collecting pygments
  Using cached Pygments-2.10.0-py3-none-any.whl (1.0 MB)
Collecting cairocffi<2.0.0,>=1.1.0
  Downloading cairocffi-1.3.0.tar.gz (88 kB)
     |████████████████████████████████| 88 kB 160 kB/s
  Preparing metadata (setup.py) ... done
Collecting tqdm
  Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
Collecting pangocffi<0.9.0,>=0.8.0
  Downloading pangocffi-0.8.0.tar.gz (33 kB)
  Preparing metadata (setup.py) ... done
Collecting pycairo<2.0,>=1.19
  Using cached pycairo-1.20.1.tar.gz (344 kB)

  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting progressbar
  Downloading progressbar-2.5.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
Collecting rich<7.0,>=6.0
  Using cached rich-6.2.0-py3-none-any.whl (150 kB)
Collecting cffi>=1.1.0
  Using cached cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (446 kB)
Collecting commonmark<0.10.0,>=0.9.0
  Using cached commonmark-0.9.1-py2.py3-none-any.whl (51 kB)
Collecting typing-extensions<4.0.0,>=3.7.4
  Using cached typing_extensions-3.10.0.2-py3-none-any.whl (26 kB)
Collecting colorama<0.5.0,>=0.4.0
  Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting pycparser
  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
Building wheels for collected packages: cairocffi, pangocairocffi, pangocffi, pycairo, progressbar
  Building wheel for cairocffi (setup.py) ... done
  Created wheel for cairocffi: filename=cairocffi-1.3.0-py3-none-any.whl size=89650 sha256=afc73218cc9fa1d844d7165f598e2be0428598166b4c3ed9de5bbdc94a0a6977
  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/f3/97/83/8022b9237866102e18d1b7ac0a269769e6fccba0f63dceb9b7
  Building wheel for pangocairocffi (setup.py) ... done
  Created wheel for pangocairocffi: filename=pangocairocffi-0.4.0-py3-none-any.whl size=19283 sha256=54399796259c6e24f9ab56c5747ab273dcf97fb6fed3e7b54935f9ac49351d50
  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/60/58/92/507a12a5044f7fcda6f4dfd8e0a607cc1fe957bc0dea885906
  Building wheel for pangocffi (setup.py) ... done
  Created wheel for pangocffi: filename=pangocffi-0.8.0-py3-none-any.whl size=37899 sha256=bea348af93696816b046dd901aa60d29a464460c5faac67628eb7e1ea7d1807d
  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/c4/df/6d/e9d0f79b1545f6e902cc22773b1429de7a5efc240b891ee009
  Building wheel for pycairo (pyproject.toml) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/yusifer_zendric/manim_ce/venv/bin/python /home/yusifer_zendric/manim_ce/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpuguwzu3u
       cwd: /tmp/pip-install-l4hqdegr/pycairo_f4d80b8f3e4840a3802342825adcdff5
  Complete output (12 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/cairo
  copying cairo/__init__.py -> build/lib.linux-x86_64-3.8/cairo
  copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.8/cairo
  copying cairo/py.typed -> build/lib.linux-x86_64-3.8/cairo
  running build_ext
  'pkg-config' not found.
  Command ['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']
  ----------------------------------------
  ERROR: Failed building wheel for pycairo
  Building wheel for progressbar (setup.py) ... done
  Created wheel for progressbar: filename=progressbar-2.5-py3-none-any.whl size=12074 sha256=7290ef8de5dd955bf756b90130f400dd19c2cc9ea050a5a1dce2803440f581e2
  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/2c/67/ed/d84123843c937d7e7f5ba88a270d11036473144143355e2747
Successfully built cairocffi pangocairocffi pangocffi progressbar
Failed to build pycairo
ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects
(venv) [email protected]:~/manim_ce$
(venv) [email protected]:~/manim_ce$ pip install manim_ce
ERROR: Could not find a version that satisfies the requirement manim_ce (from versions: none)
ERROR: No matching distribution found for manim_ce
(venv) [email protected]:~/manim_ce$ manim example_scenes/basic.py -pql

Command 'manim' not found, did you mean:

  command 'maim' from deb maim (5.5.3-1build1)

Try: sudo apt install <deb name>

(venv) [email protected]:~/manim_ce$ sudo apt-get install manim
[sudo] password for yusifer_zendric:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package manim
(venv) [email protected]:~/manim_ce$ pip3 install manimlib
Collecting manimlib
  Downloading manimlib-0.2.0.tar.gz (4.8 MB)
     |████████████████████████████████| 4.8 MB 498 kB/s
  Preparing metadata (setup.py) ... done
Collecting Pillow
  Using cached Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
Collecting argparse
  Downloading argparse-1.4.0-py2.py3-none-any.whl (23 kB)
Collecting colour
  Using cached colour-0.1.5-py2.py3-none-any.whl (23 kB)
Collecting numpy
  Using cached numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
Collecting opencv-python
  Downloading opencv_python-4.5.4.60-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.3 MB)
     |████████████████████████████████| 60.3 MB 520 kB/s
Collecting progressbar
  Using cached progressbar-2.5-py3-none-any.whl
Collecting pycairo
  Using cached pycairo-1.20.1.tar.gz (344 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pydub
  Using cached pydub-0.25.1-py2.py3-none-any.whl (32 kB)
Collecting pygments
  Using cached Pygments-2.10.0-py3-none-any.whl (1.0 MB)
Collecting scipy
  Using cached scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.3 MB)
Collecting tqdm
  Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)
Building wheels for collected packages: manimlib, pycairo
  Building wheel for manimlib (setup.py) ... done
  Created wheel for manimlib: filename=manimlib-0.2.0-py3-none-any.whl size=212737 sha256=27efe2c226d80cfe5663928e980d3e5f5a164d8e9d0aacea5014d37ffdedb76a
  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/87/36/c1/2db5ed5de9908034108f3c39538cd3367445d9cec01e7c8c23
  Building wheel for pycairo (pyproject.toml) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/yusifer_zendric/manim_ce/venv/bin/python /home/yusifer_zendric/manim_ce/venv/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmp5o2970su
       cwd: /tmp/pip-install-sxxp3lw2/pycairo_d372a62d0c6b4c4484391402d21485e1
  Complete output (12 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/cairo
  copying cairo/__init__.py -> build/lib.linux-x86_64-3.8/cairo
  copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.8/cairo
  copying cairo/py.typed -> build/lib.linux-x86_64-3.8/cairo
  running build_ext
  'pkg-config' not found.
  Command ['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']
  ----------------------------------------
  ERROR: Failed building wheel for pycairo
Successfully built manimlib
Failed to build pycairo
ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

all the libraries are installed accept the pycairo library. It’s just showing this to install pyproject.toml error. Infact I have already done pip install pyproject.toml and it is installed then also it’s showing the same error.

Solution

apt-get install sox ffmpeg libcairo2 libcairo2-dev
apt-get install texlive-full
pip3 install manimlib  # or pip install manimlib

Then:

pip3 install manimce  # or pip install manimce

And everything works.

Answered By — Yevgeniy Kosmak

The problem
This question is cut from a long paragraph and the full text is as follows, it is a problem encountered using pip3 or pip-review upgrade

pygobject==3.34.0 is available (you have 3.26.1)
Defaulting to user installation because normal site-packages is not writeable
Processing /home/thinszx/.cache/pip/wheels/78/4f/f8/35219d6282fc7d90d6713924a12fd05bb0f7eef0fa12bef507/distro_info-0.0.0-py3-none-any.whl
Collecting pygobject==3.34.0
  Using cached PyGObject-3.34.0.tar.gz (699 kB)
  Installing build dependencies ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /home/thinszx/.local/lib/python3.6/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-pbwzvrms/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo
       cwd: None
  Complete output (50 lines):
  Collecting setuptools
    Using cached setuptools-45.2.0-py3-none-any.whl (584 kB)
  Collecting wheel
    Using cached wheel-0.34.2-py2.py3-none-any.whl (26 kB)
  Collecting pycairo
    Using cached pycairo-1.19.0.tar.gz (200 kB)
  Building wheels for collected packages: pycairo
    Building wheel for pycairo (setup.py): started
    Building wheel for pycairo (setup.py): finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-sa57e6b8/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-sa57e6b8/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-pgit5hrh
         cwd: /tmp/pip-install-sa57e6b8/pycairo/
    Complete output (12 lines):
    running bdist_wheel
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/cairo
    copying cairo/__init__.py -> build/lib.linux-x86_64-3.6/cairo
    copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.6/cairo
    copying cairo/py.typed -> build/lib.linux-x86_64-3.6/cairo
    running build_ext
    'pkg-config' not found.
    Command ['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']
    ----------------------------------------
    ERROR: Failed building wheel for pycairo
    Running setup.py clean for pycairo
  Failed to build pycairo
  Installing collected packages: setuptools, wheel, pycairo
      Running setup.py install for pycairo: started
      Running setup.py install for pycairo: finished with status 'error'
      ERROR: Command errored out with exit status 1:
       command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-sa57e6b8/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-sa57e6b8/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-y2i60oh4/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-pbwzvrms/overlay --compile --install-headers /tmp/pip-build-env-pbwzvrms/overlay/include/python3.6m/pycairo              cwd: /tmp/pip-install-sa57e6b8/pycairo/
      Complete output (12 lines):
      running install
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.6
      creating build/lib.linux-x86_64-3.6/cairo
      copying cairo/__init__.py -> build/lib.linux-x86_64-3.6/cairo
      copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.6/cairo
      copying cairo/py.typed -> build/lib.linux-x86_64-3.6/cairo
      running build_ext
      'pkg-config' not found.
      Command ['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']
      ----------------------------------------
  ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-sa57e6b8/pycairo/setup.py'"'"'; __file__='"'"'/tmp/pip-install-sa57e6b8/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-y2i60oh4/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-pbwzvrms/overlay --compile --install-headers /tmp/pip-build-env-pbwzvrms/overlay/include/python3.6m/pycairo Check the logs for full command output.
  ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 /home/thinszx/.local/lib/python3.6/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-pbwzvrms/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo Check the logs for full command output. 

The solution
As for the package upgrade problem – V2EX, it is said that the PIP or pip3 upgrade will have problems, because the dependency of libgirepository1.0-dev is missing, install

sudo apt-get install libgirepository1.0-dev

And then one less than code>, cario less than /code>

sudo apt-get install python-cairo
sudo apt-get install libcairo2

Read More:

I’m very new to python and I wanted to install an animation program called manim, it requires pycairo but every time I «pip install pycairo» it gives me back this

D:Python27Scripts>pip install pycairo Collecting pycairo Using cached https://files.pythonhosted.org/packages/a6/54/23d6cf3e8d8f1eb30e0 e58f171b6f62b2ea75c024935492373639a1a08e4/pycairo-1.18.0.tar.gz

Building wheels for collected packages: pycairo Running setup.py bdist_wheel for pycairo … error Complete output from command D:Python27python.exe -u -c «import setuptools, tokenize;file__=’c:userskateappdatalocaltemppip-install-tlfzoapy cairosetup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().repla ce(‘rn’, ‘n’);f.close();exec(compile(code, file, ‘exec’))» bdist_wheel -d c:userskateappdatalocaltemppip-wheel-hj_m2t —python-tag cp27: running bdist_wheel running build running build_py creating build creating buildlib.win-amd64-2.7 creating buildlib.win-amd64-2.7cairo copying cairo_init.py -> buildlib.win-amd64-2.7cairo copying cairo_init.pyi -> buildlib.win-amd64-2.7cairo copying cairopy.typed -> buildlib.win-amd64-2.7cairo running build_ext building ‘cairo._cairo’ extension creating buildtemp.win-amd64-2.7 creating buildtemp.win-amd64-2.7Release creating buildtemp.win-amd64-2.7Releasecairo C:UsersKateAppDataLocalProgramsCommonMicrosoftVisual C++ for Python9. 0VCBinamd64cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPYCAIRO_VERSION_MAJ OR=1 -DPYCAIRO_VERSION_MINOR=18 -DPYCAIRO_VERSION_MICRO=0 -ID:Python27include -ID:Python27PC /Tccairo/device.c /Fobuildtemp.win-amd64-2.7Releasecairo/dev ice.obj device.c c:userskateappdatalocaltemppip-install-tlfzoapycairocairopycairo.h(37 ) : fatal error C1083: Cannot open include file: ‘cairo.h’: No such file or dire ctory error: command ‘C:UsersKateAppDataLocalProgramsCommonMicrosoft Visual C++ for Python9.0VCBinamd64cl.exe’ failed with exit status 2


Failed building wheel for pycairo Running setup.py clean for pycairo Failed to build pycairo twisted 18.7.0 requires PyHamcrest>=1.9.0, which is not installed. Installing collected packages: pycairo Running setup.py install for pycairo … error Complete output from command D:Python27python.exe -u -c «import setuptools , tokenize;file__=’c:userskateappdatalocaltemppip-install-tlfzoa pycairosetup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().rep lace(‘rn’, ‘n’);f.close();exec(compile(code, file, ‘exec’))» install —re cord c:userskateappdatalocaltemppip-record-if29riinstall-record.txt —sin gle-version-externally-managed —compile: running install running build running build_py creating build creating buildlib.win-amd64-2.7 creating buildlib.win-amd64-2.7cairo copying cairo_init.py -> buildlib.win-amd64-2.7cairo copying cairo_init.pyi -> buildlib.win-amd64-2.7cairo copying cairopy.typed -> buildlib.win-amd64-2.7cairo running build_ext building ‘cairo._cairo’ extension creating buildtemp.win-amd64-2.7 creating buildtemp.win-amd64-2.7Release creating buildtemp.win-amd64-2.7Releasecairo C:UsersKateAppDataLocalProgramsCommonMicrosoftVisual C++ for Python
9.0VCBinamd64cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -DPYCAIRO_VERSION_M AJOR=1 -DPYCAIRO_VERSION_MINOR=18 -DPYCAIRO_VERSION_MICRO=0 -ID:Python27includ e -ID:Python27PC /Tccairo/device.c /Fobuildtemp.win-amd64-2.7Releasecairo/d evice.obj device.c c:userskateappdatalocaltemppip-install-tlfzoapycairocairopycairo.h( 37) : fatal error C1083: Cannot open include file: ‘cairo.h’: No such file or di rectory error: command ‘C:UsersKateAppDataLocalProgramsCommonMicrosoft Visual C++ for Python9.0VCBinamd64cl.exe’ failed with exit status 2

----------------------------------------

Command «D:Python27python.exe -u -c «import setuptools, tokenize;__file__=’c:
userskateappdatalocaltemppip-install-tlfzoapycairosetup.py’;f=get attr(tokenize, ‘open’, open)(file);code=f.read().replace(‘rn’, ‘n’);f.clo se();exec(compile(code, file, ‘exec’))» install —record c:userskateappda talocaltemppip-record-if29riinstall-record.txt —single-version-externally-m anaged —compile» failed with error code 1 in c:userskateappdatalocaltempp ip-install-tlfzoapycairo
You are using pip version 10.0.1, however version 18.1 is available.

Can anyone tell me why and how to fix it? Using python 2.7 btw.

Hi guys. I was trying to run my code but I faced the following error Building wheel for numpy (pyproject.toml) in python. Later than I found some solutions to solve this error. So lets learn this.

Contents

  1. How To fix ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects error?
  2. Answer 1 : Run the command
  3. Answer 2 : install sox ffmpeg libcairo2 libcairo2-dev
  4. Final Word
    • Also, Look at this solvderror
  1. How To fix ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects error?

    To fix ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects error just Run the command. Just run the below command to solve this error: apt install libpython3.9-dev

  2. ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

    To fix ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects error just install libgirepository1.0-dev. First of all, install sox ffmpeg libcairo2 libcairo2-dev and then install libgirepository1.0-dev to solve this error. sudo apt-get install sox ffmpeg libcairo2 libcairo2-dev sudo apt install libgirepository1.0-dev

Answer 1 : Run the command

Just run the below command to solve this error:

apt install libpython3.9-dev

Answer 2 : install sox ffmpeg libcairo2 libcairo2-dev

First of all, install sox ffmpeg libcairo2 libcairo2-dev and then install libgirepository1.0-dev to solve this error.

sudo apt-get install sox ffmpeg libcairo2 libcairo2-dev

sudo apt install libgirepository1.0-dev

Final Word

I hope this will help you to solve this error. Thank you!

Also, Look at this solvderror

  • SyntaxError: invalid syntax when using match case
  • (-5:Bad argument) in function ‘rectangle’ – Can’t parse ‘pt1’. Sequence item with index 0 has a wrong type
  • error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support
  • Google oAuth 2.0 API Authentication Error: Error 400 – redirect_uri_mismatch (does not comply with policy) DJANGO APP
  • Statements must be separated by newlines or semicolons

Понравилась статья? Поделить с друзьями:
  • Error expected unqualified id before token ошибка
  • Error expected unqualified id before switch
  • Error expected unqualified id before string constant extern c
  • Error expected unqualified id before return
  • Error expected unqualified id before public