2013-05-18 17 views
5

Ich habe gerade Python (2.7.4) mit brew auf meinem MacBook Pro (10.7.5) installiert. Ich habe auch exiv2 und pyexiv2 mit brauen installiert. Wenn ich pyexiv2 aus dem Python-Interpreter zu importieren, bekam ich folgende Fehlermeldung:pyexiv2 mit Homebrew Python 2.7.4

Fatal Python Fehler: Interpreter nicht initialisiert (? Versionskonflikt)

Was soll ich tun, dass zu korrigieren (wenn man bedenkt, dass ich nicht will um den gebrühten Python zu entfernen, wie in diesem Thread vorgeschlagen: How to install python library Pyexiv2 and Gexiv2 on osx 10.6.8?)

Vielen Dank für jede Beratung!

Antwort

4

Nachdem ich einige komplizierte Lösungen im Internet gesucht und betrachtet habe, fand ich eine einfache Methode, um dieses Problem zu lösen, in der !

Die Wurzel des Problems ist die boost Abhängigkeits Bibliothek, die von Standardverbindungen an das System Python und kein gebrühten Python, vom 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.

(emphasis Mine)

  1. Also zunächst die Abhängigkeit Bibliotheken und pyexiv2 selbst mit:

    brew rm $(brew deps pyexiv2) 
    brew rm pyexiv2 
    
  2. Dann installieren boost von der Quelle, wie angegeben here:

    brew install boost --build-from-source 
    

    Hinweis: Gebäude Schub könnte Zeit in Anspruch nehmen, so geduldig sein, es hat mein System 27,9 Minuten! (Ausgang unten)

    usr/local/Cellar/boost/1.54.0: 9865 files, 568M, built in 27.9 minutes 
    
  3. Dann installieren pyexiv2 und Abhängigkeiten:

    brew install pyexiv2 
    

Das ist es, jetzt pyexiv2 Import einwandfrei funktionieren soll.

+1

Danke! es funktioniert perfekt. – jean

+1

Gebraut in 29.5 Minuten. Klappt wunderbar. Vielen vielen Dank! –

+0

@ user1781670 froh zu helfen! –

1

Überprüfen Sie, welche Python Sie ausführen (which python), und führen Sie python mit der -v Option aus, um zu sehen, wo es nach Modulen sucht. Überprüfen Sie, ob all diese Dinge Ihren Erwartungen entsprechen. Führen Sie dann brew doctor aus, und wenn sich das über nichts beschweren, melden Sie einen Fehler.

0

Ich hatte eine Menge Probleme bei der Installation von pyexiv2 mit Homebrew auf macOS Sierra mit der obigen Antwort von bool.dev. Der Homebrewed pyexiv2 warf beim Import weiterhin einen Segmentierungsfehler 11 auf.

schließlich habe ich es installiert und die Arbeit mit dem Homebrewed Python, indem sie mit den folgenden Befehlen bool.dev Antwort ändern:

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

ich die letzte Zeile in den following document auf Seite 30, nachdem ein Google immer saugte gefunden Loch.

Hoffe, das hilft!