如何使用 brewed Python 安装 libtorrent-rasterbar Python 绑定?

如何使用 brewed Python 安装 libtorrent-rasterbar Python 绑定?

标准方法不起作用:

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

相关内容