Bearbeiten: Ich habe versucht, fast jede Bibliothek in /usr/lib/girepository-1.0
bis vertreten vertreten und sie alle außer Gtk und Gdk funktionieren. Ich habe den Titel aktualisiert, um dies widerzuspiegeln.Warum segmentiert mein PyGObject selbstständig beim Import von Gtk oder Gdk?
Ich brauche eine selbst gebaute pygobject Bibliothek mit meinem selbst gebauten Python 3.3.3 zu gehen. Ich installierte alle Abhängigkeiten für PyGObject mit . Ich fand, dass die Version des Arbeitssystems PyGObject 3.2.2 war, also überprüfte ich Version 3.2.2 der Quelle vom Git Repo. Ich lief:
autoreconf --force --install ./configure --prefix=/home/tomas/.pyenv/versions/3.3.3 make make install
Alles kompiliert und installiert schön. Ich öffnete ein neues CMD und setzen Sie das Arbeitsverzeichnis ~
, dann:
~$ python Python 3.3.3 (default, Dec 21 2013, 23:12:28) [GCC 4.6.3] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from gi.repository import Gtk Segmentation fault (core dumped) ~$
Ich habe LD_LIBRARY_PATH
-/home/tomas/.pyenv/versions/3.3.3/lib
eingestellt und überprüft, dass die richtige Bibliothek geladen wird:
~$ ldd .pyenv/versions/3.3.3/lib/python3.3/site-packages/gi/_gi.so linux-vdso.so.1 => (0x00007fffcdf51000) libgirepository-1.0.so.1 => /usr/lib/libgirepository-1.0.so.1 (0x00007f45d8304000) libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f45d80b5000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f45d7dbf000) libpyglib-gi-2.0-python.so.0 => /home/tomas/.pyenv/versions/3.3.3/lib/libpyglib-gi-2.0-python.so.0 (0x00007f45d7bba000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f45d799d000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f45d75dc000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f45d72e0000) libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f45d70dc000) libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f45d6d8c000) libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f45d6b84000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f45d6947000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f45d673e000) /lib64/ld-linux-x86-64.so.2 (0x00007f45d877b000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f45d653a000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f45d6323000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f45d6103000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f45d5ee7000)
ich importiert auch das Modul mit python -vv
: Pastebin
den letzten Zeilen zeigt, dass der Core-Dump direkt nach dem Import gi.repository.Atk
passiert:
Importieren nur gi.repository.Atk
segfault nicht.
Ich habe auch versucht, die Systemversion der Bibliothek (sudo dpkg -P python3-gi
) zu entfernen, falls es in irgendeiner Weise stören würde.
Ich weiß nicht, was ich sonst tun soll. Weiß jemand oder hat er eine Idee, was das Problem sein könnte? Bitte hinterlassen Sie einen Kommentar, wenn Sie eine Idee von etwas haben, was ich versuchen könnte oder wenn ich mehr Informationen zur Verfügung stellen kann.
Können Sie einen StackTrace bekommen, wenn es passiert? – drahnr
@drahnr: Ich kann [eine Stack-Trace aus dem Kern] drucken (http://pastebin.com/raw.php?i=19rETAKn), aber es ist nicht sehr hilfreich, ohne eine Symboltabelle. – Hubro
Können Sie Python mit Debug-Symbolen neu kompilieren? Beachten Sie, ich bin mir nicht sicher, dass das hilft, aber ich denke, es ist ein Ausgangspunkt. Sie sollten auch auf der gtk-devel-Mailingliste posten - vielleicht haben einige der Kernentwickler/Introspect-Betreuer einen Hinweis. – drahnr