我刚刚使用conda forge在Anaconda上使用python 3.6安装了Opencv 3.2。使用bash运行import cv2
工作正常,在fish shell上运行此命令会输出此错误消息。
import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Users/vicarious/anaconda/lib/python3.6/site-packages/cv2.so, 2): Library not loaded: @rpath/libopencv_hdf.3.2.dylib
Referenced from: /Users/vicarious/anaconda/lib/python3.6/site-packages/cv2.so
Reason: image not found
我检查了this个问题,并添加了set -x DYLD_FALLBACK_LIBRARY_PATH /Users/vicarious/anaconda/lib/ $DYLD_FALLBACK_LIBRARY_PATH
鱼配置文件但没有帮助。
我还禁用了MacOS Sierra SIP,因为它显然不会更改DYLD_FALLBACK_LIBRARY_PATH。但我仍然得到同样的错误。
我该怎么办?
答案 0 :(得分:0)
在我的macOS Sierra 10.12上使用fish作为我的默认shell:
python
Python 3.6.0a3 | packaged by conda-forge | (default, Jul 12 2016, 15:51:25)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__version__)
3.2.0
>>> exit()
如果它在bash中工作但不是鱼,那么你的bash环境可能定义了一个环境var,它在鱼类环境中不存在或具有不同的值。另外,我使用conda install -c conda-forge opencv
安装了opencv2。如果您是从源代码构建它或以其他方式安装它可能是一个因素。