标准方法不起作用:
brew install libtorrent-rasterbar
将安装 boost 要求(与系统 Python 链接),并且 libtorrent-rasterbar 将在没有任何 Python 绑定的情况下安装。
如何修复此问题?
答案1
经过大量的挖掘、谷歌搜索和反复试验,我终于能够让这一切发挥作用。我在这里分享我的经验,希望能为其他人省去麻烦。
第一步是确保正确安装了 Python。检查是否which python
返回正确的 Python 版本(可能类似于/usr/local/bin/python
)
正确链接提升
使用以下命令检查你的 boost 是否链接到正确版本的 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
,则需要重建 boost 库并强制从源代码进行构建(參考):
brew rm boost ; brew install boost --build-from-source
完成后,您可以运行上述代码来验证其是否正确链接。
带有 Python 绑定的 Libtorrent-rasterbar
现在 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”后缀(參考)。
这将允许构建过程识别在第一步中安装的 boost 库。因此关闭编辑器并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
>>>
答案2
brew install libtorrent-rasterbar --with-python
作品。
答案3
我在 github 上找到了关于通过 brew 安装软件包(例如 libtorrent-rasterbar)的评论。它们不会在没有明确告诉 brew 的情况下链接到 python,因此您必须在 brew install 命令中添加 --with-python:
brew install libtorrent-rasterbar --with-python
您不需要从 brew 安装 python,您可以使用 Mac 上已有的 python。但您必须将 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