安装El Capitan(OSX 10.11)后无法运行WeasyPrint

时间:2015-11-04 19:58:26

标签: python macos pip macports weasyprint

我最近在Mac上将我的操作系统更新为El Capitan,从那时起,我就遇到了试图运行WeasyPrint的问题。我已经更新了macports,卸载并重新安装了所有的macport依赖项。我也通过pip卸载并重新安装WeasyPrint,没有任何问题,但它仍然无法运行。我也有导出DYLD_FALLBACK_LIBRARY_PATH =" / opt / local / lib"在我的〜/ .profile中帮助解决了导入错误并允许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

它看起来像路径问题,但我已经尝试了我能想到的一切。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

好的,所以我找到了一个解决方案(没有更改任何原始的weasyprint或cairocffi文件)。显然,OS X 10.11引入了SIP,它禁止使用DYLD路径变量。为了解决这个问题,我禁用了SIP。执行此操作的说明为here。启动时基本上保持命令+ r。单击顶部的实用程序,然后进入终端。键入csrutil disable然后重启,这应该修复它。

相关问题