Jer*_*oen 5 python homebrew macos
标准方法不起作用:
brew install libtorrent-rasterbar
Run Code Online (Sandbox Code Playgroud)
将安装 boost 要求(与系统 Python 相关联),并且 libtorrent-rasterbar 将在没有任何 Python 绑定的情况下安装。
你如何解决这个问题?
经过大量的挖掘、谷歌搜索和反复试验,我已经能够让这一切正常工作。我在这里分享我的经验,希望能帮其他人省去麻烦。
第一步是确保正确安装了 Python。检查是否which python返回正确的 Python 版本(可能类似于/usr/local/bin/python)
使用以下命令检查您的 boost 是否与正确版本的 Python 相关联(必要时将 /usr/local 更改为您的 Homebrew 前缀)。
otool -L /usr/local/lib/libboost_python-mt.dylib
Run Code Online (Sandbox Code Playgroud)
结果应包含以下行:
/usr/local/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
Run Code Online (Sandbox Code Playgroud)
如果它指向某个地方/System/Library/Frameworks,你需要重建Boost库,并从源(强制执行构建REF):
brew rm boost ; brew install boost --build-from-source
Run Code Online (Sandbox Code Playgroud)
完成后,您可以运行上面的行来验证它是否正确链接。
现在 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}"
Run Code Online (Sandbox Code Playgroud)
这里重要的两行是启用 python 绑定,--enable-python-binding第二行是--with-boost-python=mt显示它已经安装了“mt”后缀(ref)。
这将允许构建过程识别在第一步中安装的 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
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5147 次 |
| 最近记录: |