Остерегайтесь 'портфеля create' запрашивает cairo> = 1.15.10
Я следую руководству 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.14.6, если у меня установлен только cairo 1.20.0.
Я попытался обновить докер, переустановить cairo и pycairo, обновил пакеты python, но ошибка все еще существует.
3 ответа
Процесс сборки beeware пытается установить пакет pycairo. Этот пакет представляет собой просто интерфейс Python для графической библиотеки cairo (libcairo2).
В журнале изменений pycairo отображается новейшая версия 1.20.0 для pycairo, для которой требуется cairo (libcairo2) версии 1.15.10+.
Если вам повезет, вы можете просто обновить свой пакет cairo до версии, которая удовлетворяет требованиям. Информация находится на официальном сайте https://cairographics.org/download/.
У меня такая же проблема, как и у вас. В моем случае мне снова напоминают обновить мою ОС до более новой версии Ubuntu, поскольку пакет cairo libcairo2 доступен только в версии 14.6 в официальном PPA Ubuntu 16.04 LTS. В Ubuntu 20.04 LTS доступен libcairo2 - 16.0. Я подозреваю, что у вас аналогичная ОС, потому что ваша установленная версия cairo такая же, как моя.
Версия Ubuntu имеет значение. Сначала я попытался установить pycairo на Ubuntu16.04 и столкнулся с той же проблемой, что и вы. Затем я попробовал это 20.04 и, наконец, добился успеха.
Это то, чему я следовал:pycairo
Вы можете собрать пакет из исходного кода, чтобы обойти ошибку: