Jak zainstalować libtorrent-rasterbar Powiązania Python z warzonym Pythonem?


5

Standardowe podejście nie działa:

brew install libtorrent-rasterbar

Zainstaluje wymaganie doładowania (połączone z systemowym Pythonem), a libtorrent-rasterbar zostanie zainstalowany bez żadnych powiązań Pythona.

Jak to naprawić?

Odpowiedzi:


5

Po wielu kopaniach, wyszukiwaniu w Google oraz próbach i błędach udało mi się to wszystko uruchomić. Dzielę się tutaj swoimi doświadczeniami w nadziei, że ocalę innym kłopoty.

Pierwszym krokiem jest upewnienie się, że Python jest poprawnie zainstalowany. Sprawdź, czy which pythonzwraca odpowiednią wersję języka Python (prawdopodobnie coś takiego /usr/local/bin/python)

Prawidłowo powiązane doładowanie

Sprawdź, czy Twoje ulepszenie jest powiązane z odpowiednią wersją Pythona, używając następującego polecenia (w razie potrzeby zmień / usr / local na prefiks Homebrew).

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

Wynik powinien zawierać wiersz:

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

Jeśli wskazuje to gdzieś w środku /System/Library/Frameworks, musisz odbudować biblioteki doładowań i wymusić kompilację ze źródła ( ref ):

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

Gdy to zrobisz, możesz uruchomić powyższą linię, aby sprawdzić, czy jest poprawnie połączona.

Libtorrent-rasterbar z powiązaniami Pythona

Teraz, gdy boost jest poprawnie zainstalowany, libtorrent-rasterbar może go używać do budowania powiązań Pythona. Musimy edytować formułę, aby je umożliwić, ale także edukować proces kompilacji, gdzie je znaleźć.

Wykonaj, brew edit libtorrent-rasterbara następnie zmień go, aby pasował do tego:

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

Dwie ważne linie tutaj mają umożliwić powiązanie z pythonem, --enable-python-bindinga druga --with-boost-python=mtpokazuje, że został zainstalowany z sufiksem „mt” ( ref ).

Pozwoli to procesowi kompilacji rozpoznać bibliotekę rozszerzeń, która została zainstalowana w pierwszym kroku. Zamknij więc edytor i postępuj brew install libtorrent-rasterbarnormalnie.

Kontrola końcowa

Wreszcie, aby upewnić się, że wszystko działało:

% 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
>>> 

To, co zadziałało, to: brew install boost --w-python and brew libtorrent-rasterbar --w-python (OSX 10.9, python 2.7.8, który został zainstalowany przy użyciu brew)
Izrael Zalmanov


0

Znalazłem komentarz github na temat instalowania pakietów przez brew, takich jak na przykład libtorrent-rasterbar. Nie łączą się z pythonem bez wyraźnego polecenia browowi, aby to zrobił, więc musisz dodać polecenie --with-python do brew install:

brew install libtorrent-rasterbar --with-python 

Nie musisz instalować Pythona z brew, możesz użyć jednego już na komputerze Mac. Ale musisz połączyć pakiety Brew Pythona ze swoją ścieżką, aby móc je importować bezpośrednio z Pythona:

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
>>>

Testowane na: MAC OS X Yosemite 10.10.3

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.