Beeware“创建公文包”要求 cairo >= 1.15.10

问题描述 投票:0回答:3

我正在遵循 Beeware 教程,但无法“创建公文包”。

在某些时候它显示了这一点:

Collecting pygobject>=3.14.0
  Downloading PyGObject-3.38.0.tar.gz (712 kB)
     |████████████████████████████████| 712 kB 6.9 MB/s 
  Installing build dependencies ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3.8 /usr/local/lib/python3.8/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-6esqaemw/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel pycairo
       cwd: None
  Complete output (36 lines):
  WARNING: The directory '/home/brutus/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
  Collecting setuptools
    Downloading setuptools-50.3.2-py3-none-any.whl (785 kB)
  Collecting wheel
    Downloading wheel-0.35.1-py2.py3-none-any.whl (33 kB)
  Collecting pycairo
    Downloading pycairo-1.20.0.tar.gz (344 kB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Building wheels for collected packages: pycairo
    Building wheel for pycairo (PEP 517): started
    Building wheel for pycairo (PEP 517): finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3.8 /usr/local/lib/python3.8/dist-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmp426eh9du
         cwd: /tmp/pip-install-rmj9v5en/pycairo
    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
    Requested 'cairo >= 1.15.10' but version of cairo is 1.14.6
    Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1.
    ----------------------------------------
    ERROR: Failed building wheel for pycairo
  Failed to build pycairo
  ERROR: Could not build wheels for pycairo which use PEP 517 and cannot be installed directly
  ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3.8 /usr/local/lib/python3.8/dist-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-6esqaemw/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.
Unable to install dependencies. This may be because one of your dependencies is invalid, or because pip was unable to connect to the PyPI server. 

我认为主要问题是

 Requested 'cairo >= 1.15.10' but version of cairo is 1.14.6

但我不明白的是,如果我只安装了 cairo 1.20.0,那么是 cairo 1.14.6。

我尝试更新docker,重新安装cairo和pycairo,更新python包,但错误仍然存在。

python linux cairo pycairo beeware
3个回答
3
投票

beeware 构建过程正在尝试安装 pycairo 包。这个包只是 cairo 图形库 (libcairo2) 的 python 接口。

pycairo 变更日志 显示,pycairo 的最新版本为 1.20.0,这需要 cairo (libcairo2) 版本 1.15.10+。

如果幸运的话,您只需将 cairo 软件包更新到满足要求的版本即可。信息位于官方网站 cairgraphics.org/download/.

我和你有同样的问题。就我而言,我再次被提醒将我的操作系统升级到较新版本的 Ubuntu,因为 cairo 软件包 libcairo2 仅在 Ubuntu 16.04 LTS 官方 PPA 中的 14.6 版本中可用。在 Ubuntu 20.04 LTS 中,可用的 libcairo2 是 16.0。我怀疑你有一个类似的操作系统,因为你安装的 cairo 版本与我的相同。


0
投票

您可以从 source 构建包来绕过错误:


0
投票

Ubuntu 版本很重要。我首先尝试在Ubuntu16.04上安装pycairo,遇到了和你一样的问题。然后我在20.04尝试了一下,终于成功了。

这就是我所遵循的:pycairo

© www.soinside.com 2019 - 2024. All rights reserved.