Как использовать Homebrew для установки библиотек Python, таких как Py2Cairo

вот что я сделал до сих пор:

я установил Homebrew:

/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

затем python:brew install python

затем py2cairo: brew install py2cairo

оба они, похоже, установлены правильно, и когда я набираю which python Я: usr/local/bin/python который, я считаю, является версией homebrew.

я отредактировал свой путь, как советовали многие доморощенные гиды:

export PATH=/usr/local/bin:/usr/local/share/python:$PATH

вот что я получаю от echo $PATH: /usr/local/bin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

I также можно ввести python --version и вам python 2.7.3 что кажется правильным, потому что, если я посмотрю в /usr/local/Cellar/py2cairo/1.10.0/README он говорит:

Dependencies
------------
    cairo   >= 1.10.0
    Python  >= 2.6 

однако после всего этого я все еще не могу импортировать библиотеку py2cairo в python. Вот что я получаю, когда пытаюсь:

Sal:~ Lockyer$ python
Python 2.7.3 (default, May  6 2012, 13:47:31) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cairo
Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap: 6

я думаю, что большинство людей использовать pip или easy_install для такого рода вещей, но я не думаю, что py2cairo поддерживается ими. Вот что я получаю, когда бегу pip-2.7 install py2cairo:

Downloading/unpacking py2cairo
  Could not find any downloads that satisfy the requirement py2cairo
No distributions at all found for py2cairo
Storing complete log in /Users/Lockyer/Library/Logs/pip.log

я думаю, что мне просто не хватает одного последний шаг, на котором я как-то показываю python, откуда импортировать библиотеку... я что-то забыл добавить к своему пути?

вот что я получаю, когда я запускаю ls -l /usr/local/bin/python

lrwxr-xr-x  1 Lockyer  admin  33  6 May 13:48 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python

вот что я получаю, когда я запускаю otool -L /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so:

/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so:
    /private/tmp/homebrew-py2cairo-1.10.0-BtmY/py2cairo-1.10.0/build_directory/src/_cairo.so (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/Cellar/cairo/1.10.2/lib/libcairo.2.dylib (compatibility version 11003.0.0, current version 11003.2.0)
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1094.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)

двигаясь /System/Library/Frameworks/Python.framework/Versions на мой рабочий стол и работает brew install py2cairo снова, похоже, Исправлена ошибка. Было бы неплохо узнать, почему он строился против lion's python, хотя, потому что он, похоже, не первый на путь...

4 ответов


я наткнулся на ту же ошибку. Через какой-то гуглинг я узнал, что этот вопрос уже было обнаружено на странице проблем для проект на GitHub.

это, кажется, проблема о том, как waf обрабатывает импорт библиотеки, который я не понял полностью. Исправление уже представлено и ожидает утверждения.

Если кто-то еще сталкивается с этой проблемой, прежде чем принять исправление, то можно установить фиксированный формула для py2cairo после команд, предложенных на ответ.

brew rm -f py2cairo
brew install  https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb

когда исправление одобрено, простой brew update должен устранить проблему.


согласно вашим другим комментариям, вам удалось решить проблемы с библиотечным путем, но вы остались с "фатальной ошибкой Python: интерпретатор не инициализирован (несоответствие версии?)". Вот как это решить.

  1. убедитесь, что у вас есть Xcode 4.3
  2. убедитесь, что у вас установлены инструменты командной строки xcode
  3. brew tap homebrew/dupes && brew install homebrew/dupes/apple-gcc42
  4. sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
  5. подтвердите все это с помощью brew --config (следует сообщить GCC-4.2 расположен)
  6. brew uninstall cairo py2cairo
  7. brew install py2cairo --use-gcc

у меня была такая же проблема, пока я не построил ее с gcc, которая, по-видимому, больше не включена в xcode 4.3.

кроме того, я не использую установку Homebrew python (если вы это сделали). Я использую стандартную установку apple python и просто имею /usr/local/lib/python2.7/site-packages в передней части моего PYTHONPATH


кажется файл установщика находит неправильный python при установке. Вы можете запустить

otool -L /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so

чтобы определить, с каким python связано расширение C? Мой включает в себя строку, как

/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)

(но я использую системный python, а не доморощенный python).


для меня brew rm -f py2cairo и brew install py2cairo работала

вместо

brew rm -f py2cairo

попробовать

brew install  https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb