【问题标题】:Armadillo library not found when importing python package (OS X, Python 2.7)导入 python 包时找不到 Armadillo 库(OS X、Python 2.7)
【发布时间】:2015-10-13 07:08:03
【问题描述】:

我正在使用依赖于 Boost、Armadillo 的 python 包 (carmcmc)。我收到以下错误:

import carmcmc

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/admin/anaconda/lib/python2.7/site-packages/carmcmc/__init__.py", line 1, in <module>
    from _carmcmc import *

ImportError: 
dlopen(/Users/admin/anaconda/lib/python2.7/site-packages/carmcmc/_carmcmc.so, 2): 
Library not loaded: /usr/local/lib/libarmadillo.5.dylib

Referenced from: /Users/admin/anaconda/lib/python2.7/site-packages/carmcmc/_carmcmc.so

似乎缺少 lib armadillo.5.dylib,但我不知道它的作用或如何修改它的缺失。

我是这样安装的:

  1. 使用自制软件安装了 Armadillo 依赖项
  2. 用自制软件安装犰狳
  3. 已安装 Boost
  4. 已安装 Boost-python
  5. 为包运行 setup.py install

setup.py 运行时有一些异常,但我没有发现任何致命问题。

这是版本问题吗?我仍然缺少依赖项吗?任何帮助表示赞赏。

【问题讨论】:

  • 你是否检查过你是否有一个名为 /usr/local/lib/libarmadillo* 的文件
  • 事实证明,我有一个文件,其末尾附加了一个版本号。我手动卸载,重新安装,因为 home-brew 没有我需要的早期版本,并且在安装过程中没有创建库。所以我仍然被同样的问题困在同一个地方。
  • 通常可以(如果支持向后兼容性)简单地链接文件,因此从 brew 安装它而不是将 /usr/local/lib/libarmadillo.6.dylib 链接到 /usr/local/lib /libarmadillo.5.dylib

标签: python c++ python-2.7 boost


【解决方案1】:

我做了什么:

  1. 从 brew 安装犰狳 - brew install homebrew/science/armadillo
  2. 不是来自 brew 的 boost - brew install boost boost-python
  3. git clone git@github.com:brandonckelly/carma_pack.git
  4. mkvirtual 环境
  5. 从 pip 安装 numpy - pip install numpy
  6. 导出的变量
    • 导出 BOOST_DIR=/usr/local/Cellar/boost/1.58.0
    • export ARMADILLO_DIR=/usr/local/Cellar/armadillo/6.100.0
    • export NUMPY_DIR=/usr/local/Cellar/boost-python/1.58.0/ # 因为它比实际传递正确的位置更容易
  7. 在 carma_pack 的 src 文件夹中运行 python setup.py install

它现在已经安装(但是我必须安装 matplotlib 才能工作)

carmac 的代码也有 osx 的安装说明

【讨论】:

    猜你喜欢
    • 2011-05-03
    • 2018-01-19
    • 1970-01-01
    • 2014-07-04
    • 2017-01-21
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多