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ć?
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 python
zwraca odpowiednią wersję języka Python (prawdopodobnie coś takiego /usr/local/bin/python
)
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.
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-rasterbar
a 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-binding
a druga --with-boost-python=mt
pokazuje, ż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-rasterbar
normalnie.
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
>>>
brew install libtorrent-rasterbar --with-python
Prace.źródło
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:
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:
Testowane na: MAC OS X Yosemite 10.10.3
źródło