2013-05-18 2 views
5

Я только что установил python (2.7.4) с пивом на моем macbook pro (10.7.5). Я также установил exiv2 и pyexiv2 с варкой. Когда я импортировать pyexiv2 из интерпретатора Python, я получаю следующее сообщение об ошибке:pyexiv2 с homebrew python 2.7.4

Fatal Python ошибка: интерпретатор не инициализирован (? Версия рассогласования)

Что я должен сделать, чтобы исправить это (учитывая, что я не хочу для удаления пивоваренного питона, как предложено в этой теме: How to install python library Pyexiv2 and Gexiv2 on osx 10.6.8?)

Большое спасибо за любой совет!

ответ

4

После долгих поисков и поиска нескольких сложных решений в Интернете я нашел простой способ решить эту проблему в Homebrew wiki itself!

Корень проблемы является библиотека boost зависимость, которая по умолчанию ссылки на системы питона и не варят питона, из wiki:

Note that e.g. the boost bottle is built against system python and should be brewed from source to make it work with a brewed Python. This can even happen when both python executables are the same version (e.g. 2.7.2). The explanation is that Python packages with C-extensions (those that have .so files) are compiled against a certain python binary/library that may have been built with a different arch (e.g. Apple's python is still not a pure 64bit). Other things can go wrong, too. Welcome to the dirty underworld of C.

(курсив мой)

  1. Итак, сначала удалите библиотеки зависимостей и сами pyexiv2 с помощью:

    brew rm $(brew deps pyexiv2) 
    brew rm pyexiv2 
    
  2. Затем установите boost из источника, как указано here:

    brew install boost --build-from-source 
    

    Примечание: здание импульс может занять некоторое время, поэтому наберитесь терпения, он взял мою систему 27,9 минут! (Выход ниже)

    usr/local/Cellar/boost/1.54.0: 9865 files, 568M, built in 27.9 minutes 
    
  3. Затем установите pyexiv2 и зависимостей:

    brew install pyexiv2 
    

Вот, теперь импортировать pyexiv2 должны работать безупречно.

+1

Спасибо! он работает отлично. – jean

+1

Заваренный в течение 29,5 минут. Работает как шарм. Огромное спасибо! –

+0

@ user1781670 рад помочь! –

1

Проверьте, какой Python вы используете (which python), и запустите python с опцией -v, чтобы увидеть, где он ищет модули. Убедитесь, что все это соответствует вашим ожиданиям. Затем запустите brew doctor, и если это ни о чем не жалуется, сообщите об ошибке.

0

У меня возникла проблема с установкой pyexiv2 с Homebrew на macOS Sierra, используя ответ bool.dev выше. Homecrewed pyexiv2 продолжал метать ошибку сегментации 11 при импорте.

В конце концов я получил его установки и работы с доморощенной Python, изменив ответ bool.dev со следующими командами:

brew install boost --build-from-source 
brew install boost-python 
brew install exiv2 
sudo pip install git+https://github.com/escaped/pyexiv2.git 

Я нашел последнюю строку в following document на странице 30 после того, как втянутыми вниз Google дыра.

Надеюсь, это поможет!