Ошибка pip install pycairo на osx: проблемы пути поиска «pkg-config»

Я пытался установить pycairo на Mac OS X. Я получаю сообщение об ошибке,

Первоначально я получал 'pkg-config' not found. После установки через brew я получаю Package cairo was not found in the pkg-config search path. В принципе, я мог бы попытаться отредактировать путь поиска, но, поскольку он проходит через pip, я ожидал, что обо всем этом позаботятся. Есть ли способ сказать pip, чтобы он поместил материал туда, где pkg-config знает, что он должен искать?

Вот полное сообщение.

> pip install pycairo
Collecting pycairo
  Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Building wheels for collected packages: pycairo
  Building wheel for pycairo (setup.py) ... error
  ERROR: Complete output from command /Applications/anaconda/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/f2/bzrj46j11gzdk19j91tp1sq80000gq/T/pip-install-lahb8lq4/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 /private/var/folders/f2/bzrj46j11gzdk19j91tp1sq80000gq/T/pip-wheel-scnvplas --python-tag cp36:
  ERROR: running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-10.7-x86_64-3.6
  creating build/lib.macosx-10.7-x86_64-3.6/cairo
  copying cairo/__init__.py -> build/lib.macosx-10.7-x86_64-3.6/cairo
  copying cairo/__init__.pyi -> build/lib.macosx-10.7-x86_64-3.6/cairo
  copying cairo/py.typed -> build/lib.macosx-10.7-x86_64-3.6/cairo
  running build_ext
  Package cairo was not found in the pkg-config search path.
  Perhaps you should add the directory containing `cairo.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'cairo' found
  Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.13.1']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for pycairo

Я получаю ту же ошибку, если использую pip для установки более старой версии.

Здесь есть аналогичный вопрос: >Как мне решить проблему при установке pycairo на windows?, но это связано с Windows, и мне кажется, что ошибка отличается (также я не удовлетворен ответом).

Любое предложение о том, как это исправить?


person Joel    schedule 15.06.2019    source источник
comment
вы используете этот brew install pkg-config для установки пакета pkg-config?   -  person Manjeet Thakur    schedule 15.06.2019
comment
На моей машине нет brew. Я всегда использовал pip для установки пакетов Python. Не сталкивался с pkg-config, поэтому я предположил, что это какая-то форма файла конфигурации, поставляемая с pycairo... Google теперь говорит мне, что это нечто большее...   -  person Joel    schedule 15.06.2019
comment
@ManjeetThakur Рискуя превратить этот вопрос в вопрос-хамелеон, я установил pkg-config, и новая ошибка: Package cairo was not found in the pkg-config search path.. Я редактирую вопрос, чтобы включить это. У вас есть предложение, как я могу исправить это, чтобы оно работало внутри pip?   -  person Joel    schedule 15.06.2019
comment
pycairo — это просто привязки Python к пакету cairo. Сначала установите его через Homebrew: brew install cairo   -  person hoefling    schedule 15.06.2019
comment
Итак, проблема в том, что я просто предполагал, что pip установит все необходимое (и не осознавал, что мне нужно будет установить cairo отдельно). Спасибо обоим.   -  person Joel    schedule 15.06.2019
comment
Если в пакете есть бинарные колеса, они обычно содержат все; посмотрите, например, сколько разных платформ было скомпилировано Cheetah3. Но pycairo предоставляет только дистрибутив исходного кода, поэтому pip должен его скомпилировать, а для компиляции нужно много из зависимостей: компилятор, библиотеки, файлы разработки для библиотек (заголовочные/включаемые файлы, pkg-config конфигурация).   -  person phd    schedule 15.06.2019
comment
попробуйте установить пакет cairo через brew, затем попробуйте pip install pycairo. Я думаю, это могло бы помочь вам.   -  person AbdolHosein    schedule 30.10.2019