【问题标题】:Cannot import caffe - iPython doesn't find environment variables that 'ordinary' python finds无法导入 caffe - iPython 找不到“普通”python 找到的环境变量
【发布时间】:2015-10-23 16:13:10
【问题描述】:

我在运行 OS X 10.11 El Capitan 的 Mac 上使用 Anaconda python。

我正在尝试在 iPython 中使用 pycaffe,但导入它 (import caffe) 失败并出现错误

ImportError: dlopen(/Users/.../Documents/caffe-master/python/caffe/_caffe.so, 2): Library not loaded: @rpath/libcudart.7.5.dylib
  Referenced from: /Users/.../Documents/caffe-master/python/caffe/_caffe.so
  Reason: image not found

虽然 iPython 无法导入 caffe,但在“普通”python 中这样做是可行的。

Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, May 28 2015, 17:04:42) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> import caffe
>>> caffe.Net
<class 'caffe._caffe.Net'>

我还应该提到我使用的是 CUDA 7.5,虽然我看不到我拥有的 caffe 版本(下载的 zip),但它是在 2015 年 9 月 17 日从 master 分支完成的。

我为“普通”python 能够导入 caffe 采取的操作是将以下内容添加到 ~/.bash_profile

# added pycaffe path
export PYTHONPATH="/Users/.../Documents/caffe-master/python:$PYTHONPATH"

# needed to import pycaffe in python
export DYLD_FALLBACK_LIBRARY_PATH='/usr/local/cuda/lib:/anaconda/lib:/usr/local/lib:/usr/lib:/opt/intel/lib:/opt/intel/mkl/lib'

iPython 正在读取 .bash_profile 中设置的 PYTHONPATH,因为如果 export PYTHONPATH=... 行被注释掉,它将给出 ImportError: No module named caffe。但由于某种原因,它没有找到“普通”python 可以找到的DYLD_FALLBACK_LIBRARY_PATH

有什么想法可能是错的吗?

【问题讨论】:

    标签: python caffe pycaffe


    【解决方案1】:

    好的,事实证明,主要问题是由于 El Capitan 中称为 SIP(​​系统完整性保护)的新功能,它会阻止设置 DYLD_FALLBACK_LIBRARY_PATH。该功能旨在针对 Mac OSX 上的根攻击提供额外保护。

    禁用 SIP:

    • 在启动时按住 cmd-R 以恢复模式重新启动计算机 向上。
    • 打开一个终端窗口(在顶部菜单的实用程序下)。
    • 输入csrutil disable 关闭SIP(输入csrutil enable 重新开启)。
    • 从手册中的 Apple 符号重新启动计算机。

    这为我解决了这个问题。欲了解更多信息:MacWorld article on SIPCaffe user mailing list

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 1970-01-01
      • 2020-10-10
      • 2016-07-11
      • 2013-04-17
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多