Python:导入cairo错误(2.7和3.6)undefined symbol:cairo_tee_surface_index

rmn*_*rmn 10 linux pygtk pycairo python-2.7 python-3.6

尝试在Python 2.7中导入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导入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.

我的系统是LFS,4.14.4内核版本,Python 2.7.14和Python 3.6.4.

Vic*_*bot 6

我刚刚转向旧版本的 pycairo。尝试下载版本 1.11.0。

pip uninstall pycairo pip install pycairo==1.11.0

您也可以在其他可用版本上进行转换。此时; 他们是:-

1.11.0, 1.11.1, 1.12.0, 1.13.0, 1.13.1, 1.13.2, 1.13.3, 1.13.4, 1.14.0, 1.14.1, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.15.5, 1.15.6, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.17.0, 1.17.1, 1.18.0

我对它的内部原理不太了解,我只是用蛮力来解决。希望能帮助到你。

  • +1 快速实用的解决方案 - 如果您有依赖于 cairo 的依赖项(igraph),这将以最小的麻烦来解决问题。 (2认同)

neo*_*hur 3

安装 cairocffi,并替换import cairocffiimport cairocffi as cairo.