【发布时间】:2015-11-14 23:33:19
【问题描述】:
我想运行使用 cairocffi 包的some library。
但是,当我尝试运行它时,我得到:
OSError: dlopen() failed to load a library: cairo / cairo-2 /
所以我使用“brew install cairo”安装了 cairo。 然后我尝试安装py2cairo(1.10.0),(使用waf)并得到了
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
在 google 中查找此错误提供了很多页面,但与 Xcode 有关。最后我找到了this(后来也找到了this。然后我可以使用'./waf install'来安装py2cairo。
但我仍然有同样的错误,所以我去了 cairocffi/init.py 并将第 46 行从:
cairo = dlopen(ffi, 'cairo', 'cairo-2')
到:
cairo = dlopen(ffi, 'cairo', 'cairo-2', 'py2cairo')
错误仅更改为:
OSError: dlopen() failed to load a library: cairo / cairo-2 / py2cairo
我看不到它是否安装正确,但可能没有,因为我没有看到它使用
sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
我可以理解,因为我在没有 pip 的情况下安装了它。但我也无法使用“import cairo”或“import py2cairo”在 python 控制台中导入它。
我尝试了“brew install cairo”并得到了“cairo-1.14-0 已经安装”。我尝试安装py2cairo-1.10.0,会不会是问题的根源?
我使用 Python 2.7.3 和 OS X 10.10.5。
【问题讨论】:
-
查看Homebrew package list,看来您可能还需要
brew install py2cairo来获取Python 绑定;brew install cairo只获取底层图形库。你试过吗? -
是的,Homebrew 告诉我它已经安装了。