安装 El Capitan 后出现问题 运行 WeasyPrint (OSX 10.11)
Trouble running WeasyPrint after installing El Capitan (OSX 10.11)
我最近将 mac 上的 OS 更新为 El Capitan,从那以后一直 运行 尝试 运行 WeasyPrint 遇到问题。我已经更新了 macports,卸载并重新安装了所有 macport 依赖项。我也通过 pip 卸载并重新安装了 WeasyPrint,没有任何问题,但仍然没有 运行。我的 ~/.profile 中也有 export DYLD_FALLBACK_LIBRARY_PATH="/opt/local/lib" 这有助于解决导入错误并允许 WeasyPrint 在我安装 El Capitan 之前 运行。
当我在终端中输入 weasyprint --help 时,我得到以下 output/error:
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
看起来像是路径问题,不过我已经把我能想到的都试过了。有什么建议吗?
好的,所以我找到了解决方案(无需更改任何原始 weasyprint 或 cairocffi 文件)。显然 OS X 10.11 引入了禁用 DYLD 路径变量的 SIP。为了解决这个问题,我禁用了 SIP。这样做的说明是 here。基本上在启动时按住 command + r 。单击顶部的实用程序并进入终端。输入 csrutil disable 然后重新启动,这应该可以解决它。
我最近将 mac 上的 OS 更新为 El Capitan,从那以后一直 运行 尝试 运行 WeasyPrint 遇到问题。我已经更新了 macports,卸载并重新安装了所有 macport 依赖项。我也通过 pip 卸载并重新安装了 WeasyPrint,没有任何问题,但仍然没有 运行。我的 ~/.profile 中也有 export DYLD_FALLBACK_LIBRARY_PATH="/opt/local/lib" 这有助于解决导入错误并允许 WeasyPrint 在我安装 El Capitan 之前 运行。 当我在终端中输入 weasyprint --help 时,我得到以下 output/error:
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
看起来像是路径问题,不过我已经把我能想到的都试过了。有什么建议吗?
好的,所以我找到了解决方案(无需更改任何原始 weasyprint 或 cairocffi 文件)。显然 OS X 10.11 引入了禁用 DYLD 路径变量的 SIP。为了解决这个问题,我禁用了 SIP。这样做的说明是 here。基本上在启动时按住 command + r 。单击顶部的实用程序并进入终端。输入 csrutil disable 然后重新启动,这应该可以解决它。