Python 2.7/3.6导入cairo/gtk出现undefined symbol错误求助
解决
undefined symbol: cairo_tee_surface_index导入错误 问题场景
我在LFS系统(内核版本4.14.4)上使用Python 2.7.14导入gtk时,遇到了如下错误:
>>> import gtk Traceback (most recent call last): File "<stdin>", line 1, in <module> File "gtk/__init__.py", line 40, in <module> from gtk import _gtk File "/usr/lib/python2.7/site-packages/cairo/__init__.py", line 1, in <module> from ._cairo import * # noqa: F401,F403 ImportError: /usr/lib/python2.7/site-packages/cairo/_cairo.so: undefined symbol: cairo_tee_surface_index
同时在Python 3.6.4中直接导入cairo时,也出现了类似的错误:
>>> import cairo Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.6/site-packages/cairo/__init__.py", line 1, in <module> from ._cairo import * # noqa: F401,F403 ImportError: /usr/lib/python3.6/site-packages/cairo/_cairo.cpython-36m-x86_64-linux-gnu.so: undefined symbol: cairo_tee_surface_index
我已经按照BLFS手册指定的顺序编译构建了相关模块,并且在安装cairo时已经启用了tee功能,但问题依然存在。
解决方法
尝试重新卸载并安装cairo后,问题得到了解决,具体步骤如下:
- 找到之前下载的cairo源码包,进入源码目录
- 执行卸载命令:
make uninstall - 重新按照BLFS手册的步骤编译并安装cairo
完成以上操作后,再次尝试导入cairo或gtk,已经可以正常使用了。
内容的提问来源于stack exchange,提问作者rmn
相关产品推荐
相关产品推荐

