Como você instala as ligações Python libtorrent-rasterbar com um Python fabricado?

4

A abordagem padrão não funciona:

brew install libtorrent-rasterbar

Será instalado o requisito boost (ligado ao sistema Python), e o libtorrent-rasterbar será instalado sem quaisquer ligações do Python.

Como você conserta isso?

    
por Jeroen 11.02.2013 / 14:26

3 respostas

5

Depois de muita pesquisa, googling e tentativa e erro, consegui fazer tudo funcionar. Estou compartilhando minhas experiências aqui na esperança de salvar os outros o problema.

O primeiro passo é certificar-se de que você tenha o seu Python instalado corretamente. Verifique se which python devolve a versão correta do Python (provavelmente algo como /usr/local/bin/python )

impulso corretamente vinculado

Verifique se o seu boost está vinculado à versão correta do Python usando o seguinte comando (Altere / usr / local para o seu prefixo Homebrew, quando necessário).

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

O resultado deve conter a linha:

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

Se ele apontar para algum lugar em /System/Library/Frameworks , você precisará reconstruir suas bibliotecas de reforço e forçar uma compilação a partir da origem ( ref ):

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

Quando isso for feito, você poderá executar a linha acima para verificar se ela está vinculada corretamente.

Libtorrent-rasterbar com ligações do Python

Agora que o boost está instalado corretamente, o libtorrent-rasterbar pode usá-los para construir as ligações do Python. Temos que editar a fórmula para ativá-los, mas também para instruir o processo de criação sobre onde encontrá-los.

Execute brew edit libtorrent-rasterbar e altere-o para corresponder a isso:

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

As duas linhas importantes aqui são para habilitar as ligações python com --enable-python-binding e a segunda é --with-boost-python=mt para mostrar que ele foi instalado com um sufixo "mt" (ref ).

Isso permitirá que o processo de criação reconheça a biblioteca de reforço instalada na primeira etapa. Então feche o editor e faça brew install libtorrent-rasterbar como normal.

Verificação final

Finalmente, para ter certeza de que tudo funcionou:

% 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
>>> 
    
por 11.02.2013 / 23:12
0

brew install libtorrent-rasterbar --with-python funciona.

    
por 31.10.2014 / 09:25
0

Eu encontrei no comentário do github sobre a instalação de pacotes sobre brew como o libtorrent-rasterbar por exemplo. Eles não se ligam a python sem explicitamente dizer brew para fazê-lo, então você tem que adicionar --with-python ao comando brew install:

brew install libtorrent-rasterbar --with-python 

Você não precisa instalar python a partir do brew você pode usar um já no seu mac. Mas você tem que linkar os pacotes Python para o seu caminho para que você possa importá-los diretamente do python:

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

Testado em: MAC OS X Yosemite 10.10.3

    
por 30.06.2015 / 08:47