[cairo] Cannot import PyCairo in Python 3.0 (ImportError: dlopen / "Expected in: flat namespace")

Philipp Schumann phil at roxority.com
Sun Jan 4 08:56:46 PST 2009


Hello,

I'm in the process of moving my code base to Python 3.0. On Mac OS X  
10.5.6, I've upgraded both Cairo and PyCairo to 1.8.0; then in / 
Library/Frameworks/Python.framework/Versions/3.0/lib/python3.0/site- 
packages/ ran 2to3 -w cairo and removed the __init__.pyc file.

After restarting Eclipse Ganimede /w Pydev and trying to run my code,  
I got the following ImportError:

   File "/Users/roxor/dev-py/metaleap/src/metaleap/core/gfx.py", line  
2, in <module>
     import cairo
   File "/Library/Frameworks/Python.framework/Versions/3.0/lib/ 
python3.0/site-packages/cairo/__init__.py", line 1, in <module>
     from ._cairo import *
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.0/ 
lib/python3.0/site-packages/cairo/_cairo.so, 2): Symbol not found:  
__Py_ZeroStruct
   Referenced from: /Library/Frameworks/Python.framework/Versions/3.0/ 
lib/python3.0/site-packages/cairo/_cairo.so
   Expected in: flat namespace

Any ideas how this can be fixed "quick-and-dirty"-ish? I'm far from a  
production release anyway so I don't have to wait until pycairo  
"officially" supports Python 3000. Just any ideas to quickly and  
easily get Python 3.0 / pycairo to work with the current _cairo.so  
dynamic library would be *highly* appreciated...

Thanks a lot,
Phil



More information about the cairo mailing list