Python – Building wheels for pycairo using manim in Python 3.7 environments failed

Building wheels for pycairo using manim in Python 3.7 environments failed… here is a solution to the problem.

Building wheels for pycairo using manim in Python 3.7 environments failed

I’m following the steps outlined Here set up mathematical animations for educational purposes. I had to figure out how to configure all the steps for Python 3.7, but that didn’t cause any major issues. However, I’m now getting bugs that I don’t quite understand and that seem to be from the pycairo package (I’ve highlighted the bugs in bold below). I tried following the steps outlined here Fix the error, but while I’ve successfully installed the latest pycairo package (1.17), I’m still getting the same error. I have some programming experience, but I’m new to python, so I’m not sure how to solve this problem. Any help would be appreciated.

I’ve posted the following code (bold shows the error):

(manim37) C:\Users\a1689869\Anaconda3\manim>pip install -r requirements.txt

Requirement already satisfied: argparse==1.4.0 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 1)) (1.4.0)
Requirement already satisfied: colour==0.1.5 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 2)) (0.1.5)
Requirement already satisfied: numpy==1.15.0 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 3)) (1.15.0)
Requirement already satisfied: Pillow==5.2.0 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 4)) (5.2.0)
Requirement already satisfied: progressbar==2.5 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 5)) (2.5)
Requirement already satisfied: scipy==1.1.0 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 6)) (1.1.0)
Requirement already satisfied: tqdm==4.24.0 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 7)) (4.24.0)
Requirement already satisfied: opencv-python==3.4.2.17 in c:\users\a1689869\anaconda3\envs\manim37\lib\site-packages (from -r requirements.txt (line 8)) (3.4.2.17)
Collecting pycairo==1.17.1 (from -r requirements.txt (line 9))
  Using cached https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz
Building wheels for collected packages: pycairo
  **Running setup.py bdist_wheel for pycairo ... error**
  Complete output from command c:\users\a1689869\anaconda3\envs\manim37\python.exe -u -c "import setuptools, tokenize; __file__='C:\\Users\\a1689869\\AppData\\Local\\Temp\\pip-install-cicoey3g\\pycairo\\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 C:\Users\a1689869\AppData\Local\Temp\pip-wheel-29uyasfz --python-tag cp37:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.7
  creating build\lib.win-amd64-3.7\cairo
  copying cairo\__init__.py -> build\lib.win-amd64-3.7\cairo
  copying cairo\__init__.pyi -> build\lib.win-amd64-3.7\cairo
  copying cairo\py.typed -> build\lib.win-amd64-3.7\cairo
  running build_ext
  building 'cairo._cairo' extension
  creating build\temp.win-amd64-3.7
  creating build\temp.win-amd64-3.7\Release
  creating build\temp.win-amd64-3.7\Release\cairo
  C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.13.26128\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYCAIRO_VERSION_MAJOR=1 - DPYCAIRO_VERSION_MINOR=17 -DPYCAIRO_VERSION_MICRO=1 -Ic:\users\a1689869\anaconda3\envs\manim37\include -Ic:\users\a1689869\anaconda3\envs\manim37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.13.26128\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" "-IC:\Program Files ( x86)\Windows Kits\8.1\include\\cppwinrt" /Tccairo/device.c /Fobuild\temp.win-amd64-3.7\Release\cairo/device.obj
  device.c
  **c:\users\a1689869\appdata\local\temp\pip-install-cicoey3g\pycairo\cairo\pycairo.h(37): fatal error C1083: Cannot open include file: 'cairo.h': No such file or directory**
  **error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.13.26128\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2**

----------------------------------------
  **Failed building wheel for pycairo
  Running setup.py clean for pycairo
Failed to build pycairo
Installing collected packages: pycairo
  Running setup.py install for pycairo ... error**
    Complete output from command c:\users\a1689869\anaconda3\envs\manim37\python.exe -u -c "import setuptools, tokenize; __file__='C:\\Users\\a1689869\\AppData\\Local\\Temp\\pip-install-cicoey3g\\pycairo\\setup.py'; f=getattr(tokenize, 'open', open)(__file__); code=f.read().replace('\r\n', '\n'); f.close(); exec(compile(code, __file__, 'exec'))" install --record C:\Users\a1689869\AppData\Local\Temp\pip-record-ld4ke0sg\install-record.txt --single-version-externally-managed -- compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.7
    creating build\lib.win-amd64-3.7\cairo
    copying cairo\__init__.py -> build\lib.win-amd64-3.7\cairo
    copying cairo\__init__.pyi -> build\lib.win-amd64-3.7\cairo
    copying cairo\py.typed -> build\lib.win-amd64-3.7\cairo
    running build_ext
    building 'cairo._cairo' extension
    creating build\temp.win-amd64-3.7
    creating build\temp.win-amd64-3.7\Release
    creating build\temp.win-amd64-3.7\Release\cairo
    C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.13.26128\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYCAIRO_VERSION_MAJOR=1 - DPYCAIRO_VERSION_MINOR=17 -DPYCAIRO_VERSION_MICRO=1 -Ic:\users\a1689869\anaconda3\envs\manim37\include -Ic:\users\a1689869\anaconda3\envs\manim37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.13.26128\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" "-IC:\Program Files ( x86)\Windows Kits\8.1\include\\cppwinrt" /Tccairo/device.c /Fobuild\temp.win-amd64-3.7\Release\cairo/device.obj
    device.c
    **c:\users\a1689869\appdata\local\temp\pip-install-cicoey3g\pycairo\cairo\pycairo.h(37): fatal error C1083: Cannot open include file: 'cairo.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.13.26128\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2**

----------------------------------------
Command "c:\users\a1689869\anaconda3\envs\manim37\python.exe -u -c "import setuptools, tokenize; __file__='C:\\Users\\a1689869\\AppData\\Local\\Temp\\pip-install-cicoey3g\\pycairo\\setup.py'; f=getattr(tokenize, 'open', open)(__file__); code=f.read().replace('\r\n', '\n'); f.close(); exec(compile(code, __file__, 'exec'))" install --record C:\Users\a1689869\AppData\Local\Temp\pip-record-ld4ke0sg\install-record.txt --single-version-externally-managed -- compile" failed with error code 1 in C:\Users\a1689869\AppData\Local\Temp\pip-install-cicoey3g\pycairo\

Solution

It looks like you’re using anaconda. As far as I can tell, there seem to be some issues when building wheels for pycairo. Maybe you can try installing pycairo manually and then reinstall manimlib again at the anaconda prompt.

conda install -c conda-forge pycairo

source – conda-forge/pycairo

Related Problems and Solutions