Wie installiere ich libtorrent-rasterbar Python-Bindungen mit einem gebrauten Python?


5

Der Standardansatz funktioniert nicht:

brew install libtorrent-rasterbar

Installiert die Boost-Anforderung (mit dem System Python verknüpft) und libtorrent-rasterbar wird ohne Python-Bindungen installiert.

Wie können Sie das beheben?

Antworten:


5

Nachdem ich viel gegraben, gegoogelt und probiert habe, konnte ich alles zum Laufen bringen. Ich teile meine Erfahrungen hier in der Hoffnung, anderen die Mühe zu ersparen.

Der erste Schritt besteht darin, sicherzustellen, dass Sie Python ordnungsgemäß installiert haben. Überprüfen Sie, ob which pythondie richtige Python-Version zurückgegeben wird (wahrscheinlich so etwas wie /usr/local/bin/python)

Ordnungsgemäß verknüpfter Schub

Überprüfen Sie mit dem folgenden Befehl, ob Ihr Boost mit der richtigen Version von Python verknüpft ist (Ändern Sie / usr / local ggf. in Ihr Homebrew-Präfix).

otool -L /usr/local/lib/libboost_python-mt.dylib

Das Ergebnis sollte die folgende Zeile enthalten:

/usr/local/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)

Wenn es auf irgendwo hinweist /System/Library/Frameworks, müssen Sie Ihre Boost-Bibliotheken neu erstellen und einen Build aus dem Quellcode erzwingen ( ref ):

brew rm boost ; brew install boost --build-from-source

Sobald dies erledigt ist, können Sie die obige Zeile ausführen, um die korrekte Verknüpfung zu überprüfen.

Libtorrent-Rasterbar mit Python-Bindungen

Nachdem der Boost ordnungsgemäß installiert wurde, kann libtorrent-rasterbar sie zum Erstellen der Python-Bindungen verwenden. Wir müssen die Formel bearbeiten, um sie zu aktivieren, aber auch, um den Erstellungsprozess darüber aufzuklären, wo sie zu finden sind.

Führen Sie es aus brew edit libtorrent-rasterbarund ändern Sie es entsprechend:

def install
system "./configure", "--disable-debug",
                      "--disable-dependency-tracking",
                      "--enable-python-binding",
                      "--with-boost-python=mt",
                      "--prefix=#{prefix}"

Die zwei wichtigen Zeilen hier sollen die Python-Bindungen mit aktivieren --enable-python-bindingund die zweite soll --with-boost-python=mtzeigen, dass sie mit dem Suffix "mt" ( ref ) installiert wurden .

Auf diese Weise kann der Erstellungsprozess die im ersten Schritt installierte Boost-Bibliothek erkennen. Schließen Sie den Editor und verfahren Sie brew install libtorrent-rasterbarwie gewohnt.

Letzter Check

Um sicherzustellen, dass alles funktioniert hat:

% python
Python 2.7.3 (default, Feb 10 2013, 10:53:34) 
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.24)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import libtorrent
>>> 

Für mich hat Folgendes funktioniert: brew install boost - mit Python und brew libtorrent-rasterbar - mit Python (OSX 10.9, Python 2.7.8, das mit brew installiert wurde)
Israel Zalmanov


0

Ich fand auf Github einen Kommentar zur Installation von Paketen über Brew wie zum Beispiel libtorrent-rasterbar. Sie stellen keine Verbindung zu Python her, ohne dass brew ausdrücklich dazu aufgefordert wird. Sie müssen also den Befehl --with-python hinzufügen, um den Installationsbefehl zu erstellen:

brew install libtorrent-rasterbar --with-python 

Sie müssen Python nicht von Brew installieren, sondern können es bereits auf Ihrem Mac verwenden. Sie müssen jedoch Brew-Python-Pakete mit Ihrem Pfad verknüpfen, damit Sie sie direkt aus Python importieren können:

mkdir -p /Users/filip/Library/Python/2.7/lib/python/site-packages

echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/filip/Library/Python/2.7/lib/python/site-packages/homebrew.pth

Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import libtorrent
>>>

Getestet unter: MAC OS X Yosemite 10.10.3

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.