最近,我将我的mac操作系统升级到了El Capitan,从那以后,我一直在尝试运行WeasyPrint时遇到了问题。我已经更新了宏端口,卸载并重新安装了所有的macport依赖项。我还通过pip卸载和重新安装了WeasyPrint,没有任何问题,但仍然没有运行。我的~/.概要文件中还有导出DYLD_FALLBACK_LIBRARY_PATH="/opt/local/lib“,这有助于解决导入错误,并允许WeasyPrint在安装El Capitan之前运行。当我在终端中输入weasyprint --help时,会得到以下输出/错误:
File "main.py", line 14, in <module>
import nextline_webapp.quotes # pylint: disable=unused-import
File "/Users/joshsacks/NextLine/nextline_webapp/quotes.py", line 8, in <module>
from flask_weasyprint import HTML, render_pdf
File "/Library/Python/2.7/site-packages/flask_weasyprint/__init__.py", line 13, in <module>
import weasyprint
File "/Library/Python/2.7/site-packages/weasyprint/__init__.py", line 336, in <module>
from .css import PARSER, preprocess_stylesheet
File "/Library/Python/2.7/site-packages/weasyprint/css/__init__.py", line 30, in <module>
from . import computed_values
File "/Library/Python/2.7/site-packages/weasyprint/css/computed_values.py", line 18, in <module>
from .. import text
File "/Library/Python/2.7/site-packages/weasyprint/text.py", line 18, in <module>
import cairocffi as cairo
File "/Library/Python/2.7/site-packages/cairocffi/__init__.py", line 46, in <module>
cairo = dlopen(ffi, 'cairo', 'cairo-2')
File "/Library/Python/2.7/site-packages/cairocffi/__init__.py", line 43, in dlopen
raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
OSError: dlopen() failed to load a library: cairo / cairo-2这看起来像是路径问题,但我已经尝试了我所能想到的一切。有什么建议吗?
发布于 2015-11-05 15:54:34
好的,我找到了一个解决方案(没有改变任何原始的weasyprint或cairocffi文件)。显然,OSX10.11引入了SIP,它禁用DYLD路径变量的使用。为了解决这个问题,我禁用了SIP。这样做的说明是这里。基本上在启动时保持命令+r。单击顶部的实用程序并进入终端。输入csrutil禁用,然后重新启动,这应该修复它。
https://stackoverflow.com/questions/33530911
复制相似问题