错误:无法为 pycairo 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

Yus*_*ric 44 python ubuntu pycairo windows-subsystem-for-linux manim

安装manimce时出错,我一直在尝试在linux的windows子系统上安装manimce库,运行后

\n
pip install manimce\nCollecting manimce\n  Downloading manimce-0.1.1.post2-py3-none-any.whl (249 kB)\n     |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 249 kB 257 kB/s\nCollecting Pillow\n  Using cached Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)\nCollecting scipy\n  Using cached scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.3 MB)\nCollecting colour\n  Using cached colour-0.1.5-py2.py3-none-any.whl (23 kB)\nCollecting pangocairocffi<0.5.0,>=0.4.0\n  Downloading pangocairocffi-0.4.0.tar.gz (17 kB)\n  Preparing metadata (setup.py) ... done\nCollecting numpy\n  Using cached numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)\nCollecting pydub\n  Using cached pydub-0.25.1-py2.py3-none-any.whl (32 kB)\nCollecting pygments\n  Using cached Pygments-2.10.0-py3-none-any.whl (1.0 MB)\nCollecting cairocffi<2.0.0,>=1.1.0\n  Downloading cairocffi-1.3.0.tar.gz (88 kB)\n     |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 88 kB 160 kB/s\n  Preparing metadata (setup.py) ... done\nCollecting tqdm\n  Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)\nCollecting pangocffi<0.9.0,>=0.8.0\n  Downloading pangocffi-0.8.0.tar.gz (33 kB)\n  Preparing metadata (setup.py) ... done\nCollecting pycairo<2.0,>=1.19\n  Using cached pycairo-1.20.1.tar.gz (344 kB)\n\n  Installing build dependencies ... done\n  Getting requirements to build wheel ... done\n  Preparing metadata (pyproject.toml) ... done\nCollecting progressbar\n  Downloading progressbar-2.5.tar.gz (10 kB)\n  Preparing metadata (setup.py) ... done\nCollecting rich<7.0,>=6.0\n  Using cached rich-6.2.0-py3-none-any.whl (150 kB)\nCollecting cffi>=1.1.0\n  Using cached cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (446 kB)\nCollecting commonmark<0.10.0,>=0.9.0\n  Using cached commonmark-0.9.1-py2.py3-none-any.whl (51 kB)\nCollecting typing-extensions<4.0.0,>=3.7.4\n  Using cached typing_extensions-3.10.0.2-py3-none-any.whl (26 kB)\nCollecting colorama<0.5.0,>=0.4.0\n  Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)\nCollecting pycparser\n  Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)\nBuilding wheels for collected packages: cairocffi, pangocairocffi, pangocffi, pycairo, progressbar\n  Building wheel for cairocffi (setup.py) ... done\n  Created wheel for cairocffi: filename=cairocffi-1.3.0-py3-none-any.whl size=89650 sha256=afc73218cc9fa1d844d7165f598e2be0428598166b4c3ed9de5bbdc94a0a6977\n  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/f3/97/83/8022b9237866102e18d1b7ac0a269769e6fccba0f63dceb9b7\n  Building wheel for pangocairocffi (setup.py) ... done\n  Created wheel for pangocairocffi: filename=pangocairocffi-0.4.0-py3-none-any.whl size=19283 sha256=54399796259c6e24f9ab56c5747ab273dcf97fb6fed3e7b54935f9ac49351d50\n  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/60/58/92/507a12a5044f7fcda6f4dfd8e0a607cc1fe957bc0dea885906\n  Building wheel for pangocffi (setup.py) ... done\n  Created wheel for pangocffi: filename=pangocffi-0.8.0-py3-none-any.whl size=37899 sha256=bea348af93696816b046dd901aa60d29a464460c5faac67628eb7e1ea7d1807d\n  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/c4/df/6d/e9d0f79b1545f6e902cc22773b1429de7a5efc240b891ee009\n  Building wheel for pycairo (pyproject.toml) ... error\n  ERROR: Command errored out with exit status 1:\n   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\n       cwd: /tmp/pip-install-l4hqdegr/pycairo_f4d80b8f3e4840a3802342825adcdff5\n  Complete output (12 lines):\n  running bdist_wheel\n  running build\n  running build_py\n  creating build\n  creating build/lib.linux-x86_64-3.8\n  creating build/lib.linux-x86_64-3.8/cairo\n  copying cairo/__init__.py -> build/lib.linux-x86_64-3.8/cairo\n  copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.8/cairo\n  copying cairo/py.typed -> build/lib.linux-x86_64-3.8/cairo\n  running build_ext\n  \'pkg-config\' not found.\n  Command [\'pkg-config\', \'--print-errors\', \'--exists\', \'cairo >= 1.15.10\']\n  ----------------------------------------\n  ERROR: Failed building wheel for pycairo\n  Building wheel for progressbar (setup.py) ... done\n  Created wheel for progressbar: filename=progressbar-2.5-py3-none-any.whl size=12074 sha256=7290ef8de5dd955bf756b90130f400dd19c2cc9ea050a5a1dce2803440f581e2\n  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/2c/67/ed/d84123843c937d7e7f5ba88a270d11036473144143355e2747\nSuccessfully built cairocffi pangocairocffi pangocffi progressbar\nFailed to build pycairo\nERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects\n(venv) yusifer_zendric@Laptop-Yusifer:~/manim_ce$\n(venv) yusifer_zendric@Laptop-Yusifer:~/manim_ce$ pip install manim_ce\nERROR: Could not find a version that satisfies the requirement manim_ce (from versions: none)\nERROR: No matching distribution found for manim_ce\n(venv) yusifer_zendric@Laptop-Yusifer:~/manim_ce$ manim example_scenes/basic.py -pql\n\nCommand \'manim\' not found, did you mean:\n\n  command \'maim\' from deb maim (5.5.3-1build1)\n\nTry: sudo apt install <deb name>\n\n(venv) yusifer_zendric@Laptop-Yusifer:~/manim_ce$ sudo apt-get install manim\n[sudo] password for yusifer_zendric:\nReading package lists... Done\nBuilding dependency tree\nReading state information... Done\nE: Unable to locate package manim\n(venv) yusifer_zendric@Laptop-Yusifer:~/manim_ce$ pip3 install manimlib\nCollecting manimlib\n  Downloading manimlib-0.2.0.tar.gz (4.8 MB)\n     |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 4.8 MB 498 kB/s\n  Preparing metadata (setup.py) ... done\nCollecting Pillow\n  Using cached Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)\nCollecting argparse\n  Downloading argparse-1.4.0-py2.py3-none-any.whl (23 kB)\nCollecting colour\n  Using cached colour-0.1.5-py2.py3-none-any.whl (23 kB)\nCollecting numpy\n  Using cached numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)\nCollecting opencv-python\n  Downloading opencv_python-4.5.4.60-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.3 MB)\n     |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 60.3 MB 520 kB/s\nCollecting progressbar\n  Using cached progressbar-2.5-py3-none-any.whl\nCollecting pycairo\n  Using cached pycairo-1.20.1.tar.gz (344 kB)\n  Installing build dependencies ... done\n  Getting requirements to build wheel ... done\n  Preparing metadata (pyproject.toml) ... done\nCollecting pydub\n  Using cached pydub-0.25.1-py2.py3-none-any.whl (32 kB)\nCollecting pygments\n  Using cached Pygments-2.10.0-py3-none-any.whl (1.0 MB)\nCollecting scipy\n  Using cached scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.3 MB)\nCollecting tqdm\n  Using cached tqdm-4.62.3-py2.py3-none-any.whl (76 kB)\nBuilding wheels for collected packages: manimlib, pycairo\n  Building wheel for manimlib (setup.py) ... done\n  Created wheel for manimlib: filename=manimlib-0.2.0-py3-none-any.whl size=212737 sha256=27efe2c226d80cfe5663928e980d3e5f5a164d8e9d0aacea5014d37ffdedb76a\n  Stored in directory: /home/yusifer_zendric/.cache/pip/wheels/87/36/c1/2db5ed5de9908034108f3c39538cd3367445d9cec01e7c8c23\n  Building wheel for pycairo (pyproject.toml) ... error\n  ERROR: Command errored out with exit status 1:\n   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\n       cwd: /tmp/pip-install-sxxp3lw2/pycairo_d372a62d0c6b4c4484391402d21485e1\n  Complete output (12 lines):\n  running bdist_wheel\n  running build\n  running build_py\n  creating build\n  creating build/lib.linux-x86_64-3.8\n  creating build/lib.linux-x86_64-3.8/cairo\n  copying cairo/__init__.py -> build/lib.linux-x86_64-3.8/cairo\n  copying cairo/__init__.pyi -> build/lib.linux-x86_64-3.8/cairo\n  copying cairo/py.typed -> build/lib.linux-x86_64-3.8/cairo\n  running build_ext\n  \'pkg-config\' not found.\n  Command [\'pkg-config\', \'--print-errors\', \'--exists\', \'cairo >= 1.15.10\']\n  ----------------------------------------\n  ERROR: Failed building wheel for pycairo\nSuccessfully built manimlib\nFailed to build pycairo\nERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects\n
Run Code Online (Sandbox Code Playgroud)\n

所有库均已安装并接受 pycairo 库。它只是显示安装 pyproject.toml 错误。事实上,我已经完成了 pip install pyproject.toml 并安装了它,然后它也显示了相同的错误。

\n

Yev*_*mak 23

apt-get install sox ffmpeg libcairo2 libcairo2-dev
apt-get install texlive-full
pip3 install manimlib  # or pip install manimlib
Run Code Online (Sandbox Code Playgroud)

然后:

pip3 install manimce  # or pip install manimce
Run Code Online (Sandbox Code Playgroud)

一切正常。

  • 我不认为 texlive-full 与 pycairo 有任何关系,它只是一个乳胶包:https://installati.one/ubuntu/20.04/texlive-full/;另外,ffmpeg 与音频/视频相关:https://ffmpeg.org/;pycairo 只需要安装 libcairo2 和 libcairo2-dev: apt-get install libcairo2 libcairo2-dev 就可以了 (7认同)

pH4*_*T0M 22

你可以简单地做

sudo apt install libcairo2-dev pkg-config python3-dev
Run Code Online (Sandbox Code Playgroud)

然后

pip3 install pycairo
Run Code Online (Sandbox Code Playgroud)


pda*_*awr 14

我遇到了同样的错误,但是对于不同的包。我用以下方法解决了这个问题:

apt install libpython3.9-dev
Run Code Online (Sandbox Code Playgroud)


小智 9

尝试安装reportlab时发生了同样的问题。

错误消息中的一个关键提示是'pkg-config' not find

在 MacOS 上请考虑:

  1. 安装 Homebrew (按照https://brew.sh上的说明进行操作)

  2. 然后:

brew install cairo
brew install pkg-config
pip install pycairo
Run Code Online (Sandbox Code Playgroud)

此后,pip install reportlab工作顺利。


Zen*_*515 5

就我而言,我正在尝试安装PyGObjectFedora.
但我遇到了同样的问题。
以下是如何在 中执行此操作Fedora

sudo dnf install gobject-introspection-devel cairo-gobject-devel
Run Code Online (Sandbox Code Playgroud)

接下来安装您正在使用的库,在我的例子中是PyGObject

pip install PyGObject
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我有用

  • Ubuntu/Debian:sudo apt install libcairo2-dev pkg-config python3-dev
  • macOS/自制软件:brew install cairo pkg-config
  • 拱门Linux:sudo pacman -S cairo pkgconf
  • 软呢帽:sudo dnf install cairo-devel pkg-config python3-devel
  • 开放SUSE:sudo zypper install cairo-devel pkg-config python3-devel

来源