Как использовать 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: интерпретатор не инициализирован (несоответствие версии?)". Вот как это решить.
- убедитесь, что у вас есть Xcode 4.3
- убедитесь, что у вас установлены инструменты командной строки xcode
brew tap homebrew/dupes && brew install homebrew/dupes/apple-gcc42
sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
- подтвердите все это с помощью
brew --config
(следует сообщить GCC-4.2 расположен) brew uninstall cairo py2cairo
brew install py2cairo --use-gcc
у меня была такая же проблема, пока я не построил ее с gcc, которая, по-видимому, больше не включена в xcode 4.3.
кроме того, я не использую установку Homebrew python (если вы это сделали). Я использую стандартную установку apple python и просто имею /usr/local/lib/python2.7/site-packages
в передней части моего PYTHONPATH
кажется
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