4

Стандартный подход не работает:

brew install libtorrent-rasterbar

Установит требование повышения (связанное с системой Python), а libtorrent-rasterbar установит без каких-либо привязок Python вообще.

Как вы это исправите?

3 ответа3

5

После многих копаний, поиска в Google, проб и ошибок я смог заставить все это работать. Я делюсь своим опытом здесь в надежде избавить других от неприятностей.

Первый шаг - убедиться, что ваш Python установлен правильно. Проверьте, which python возвращает правильную версию Python (вероятно, что-то вроде /usr/local/bin/python)

Правильно связанный буст

Проверьте, связано ли ваше повышение с верной версией Python, используя следующую команду (при необходимости измените /usr /local на ваш префикс Homebrew).

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

Результат должен содержать строку:

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

Если он указывает где-то в /System/Library/Frameworks , вам нужно пересобрать ваши библиотеки наддува и форсировать сборку из исходного кода (ссылка):

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

Как только это будет сделано, вы можете запустить вышеуказанную строку, чтобы убедиться, что она связана правильно.

Libtorrent-растербар с привязками Python

Теперь, когда boost установлен правильно, libtorrent-rasterbar может использовать их для создания привязок Python. Мы должны отредактировать формулу, чтобы включить их, а также обучить процесс сборки тому, где их найти.

Выполните brew edit libtorrent-rasterbar и измените его так, чтобы он соответствовал следующему:

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

Здесь две важные строки включают включение привязки python с --enable-python-binding а вторая - --with-boost-python=mt чтобы показать, что она была установлена с суффиксом "mt" (ref).

Это позволит процессу сборки распознавать библиотеку надстройки, которая была установлена на первом этапе. Поэтому закройте редактор и выполните brew install libtorrent-rasterbar как обычно.

Окончательная проверка

Наконец, чтобы убедиться, что все это работает:

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

Я нашел на github комментарий об установке пакетов поверх brew, например, libtorrent-rasterbar. Они не ссылаются на python без явного указания brew сделать это, поэтому вы должны добавить команду --with-python к brew install:

brew install libtorrent-rasterbar --with-python 

Вам не нужно устанавливать Python из Brew, вы можете использовать его уже на вашем Mac. Но вы должны связать пакеты brew python с вашим путем, чтобы вы могли импортировать их непосредственно из 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
>>>

Проверено на: MAC OS X Yosemite 10.10.3

0

brew install libtorrent-rasterbar --with-python работает с python .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .