私はOSXLionを実行していて、python2.7を使用してgoocanvas用のpythonモジュールをインポートしようとしています。
pygoocanvas-0.14.1を正常にコンパイルできましたがimport goocanvas
、python2.7コンソールを使用しようとすると、セグメンテーション違反が発生します。いくつかのデバッグの後、私はこのコードに導かれます:
DL_EXPORT (void)
initgoocanvas (void)
{
PyObject *m, *d;
fprintf(stderr,"init<< \n");
// Pycairo_IMPORT; // XXX removed, it expands to the line below, anyways
Pycairo_CAPI = (Pycairo_CAPI_t*) PyCObject_Import("cairo", "CAPI"); // ADDED XXX
fprintf(stderr,"after import<< \n");
if (Pycairo_CAPI == NULL) {
return;
}
goocanvaspythonモジュールのC++コードがを介して「cairo」ライブラリをインポートしようとすると、セグメンテーション違反が発生することを発見しましたPyCObject_Import("cairo", "CAPI")
。ただし、を介してpython2.7コンソールから直接cairoモジュールをインポートしようとするとimport cairo
、機能します。
どうすればいいですか?私はブラインドセグメンテーション違反があり、なぜそれが起こるのか分かりません。python goocanvasモジュールをコンパイルできたことを思い出してください。ただし、pythonにインポートしようとするとsegfaultが発生します。