GDB ziemlich Druck ImportError: No module named 'Drucker'
Ich versuche, fügen Sie pretty-printing für STL in mein GDB auf Ubuntu 14.04. Einige details zu den Extras:
OS: Ubuntu 14.04
gdb-version: 7.7
python version: 2.7.6
Python ist3 version: 3.4.0
Aber nachdem ich das setup genau wie das, was die Anweisung sagt. Ich bekomme immer noch folgende Fehler:
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/__init__.py", line 19, in <module>
from printers import register_libstdcxx_printers
ImportError: No module named 'printers'
/home/jerry/.gdbinit:6: Error in sourced command file:
Error while executing Python code.
Reading symbols from main...done.
Dann habe ich haved doppelt geprüft meine pretty-printing-Installationsverzeichnis. Unter dem Verzeichnis /home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/
ich kann deutlich sehen, dass ich die printers.py Datei. Und ich habe auch den Inhalt printers.py ich bin sicher, es hat auch die register_libstdcxx_printers
Klasse. Warum der python-interpreter ist immer noch beschweren das printers
Modul fehlt? Dies scheint wirklich seltsam zu mir.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade versucht, selbst etwas, und zum Glück, jetzt funktioniert es. Zumindest kann drucken Sie die Karte und Vektor-Inhalte, wie erwartet. Hier ist was ich getan habe:
Da es sich beschwert, dass es nicht finden können, die
printer.py
Modul, dann denke ich, sollte ich wahrscheinlich sagen, python-interpreter, wo diese Datei liegt. Also habe ich zuerst noch diese extra-Linie an meiner ~/.gdbinit:sys.path.append("/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6")
(Nach der Zeile
sys.path.insert(0, '/home/jerry/myLib/gdb_stl_support/python')
)Dann läuft gdb wieder, ich bekam die folgende Fehlermeldung:
Gegeben, den Fehler zu informieren, habe ich editiert die ~/.gdbinit Datei und kommentiert die Zeile
register_libstdcxx_printers (None)
.Und dann nach dem ausführen gdb, es funktioniert.
Aber ich bin immer noch Fragen, wenn Verzeichnis in sys.Pfad wird rekursiv durchsucht? Ich meine, in meinem Geist, der python-interpreter funktioniert wie dies: sobald Sie Hinzugefügt haben, ein Verzeichnis zu
sys.path
, dann das Unterverzeichnis unter diesem Verzeichnis werden auch erhalten suchte, die für eine Modul-Datei.python/libstdcxx/v6/__init__.py
und ersetzenfrom printers import register_libstdcxx_printers
mitfrom .printers import register_libstdcxx_printers
(Mein GDB beinhaltet Python 3.4)