Seite 1 von 1
segmention fault
Verfasst: Dienstag 20. Oktober 2009, 10:40
von stuhlbein
Hallo, Ich hab grad eine kleine WxPython anwendung testen wollen, erhalte beim ausführen aber leider einen Segfault. Hier der code:
Code: Alles auswählen
import wx
class MyApp(wx.App):
def OnInit(self):
frame = wx.Frame(None, -1, "Hello from wxPython")
frame.Show(true)
self.SetTopWindow(frame)
return true
app = MyApp(0)
app.MainLoop()
Woran könnte es liegen? Ich hab nur das beispiel von
http://www.wxpython.org/tut-part1.php an das wx-modul angepasst, wobei auch das unveränderte beispiel zu einem segfault führt...
Verfasst: Dienstag 20. Oktober 2009, 11:15
von Rebecca
Bei mir gibt's nur NameErrors da man True gross schreibt, wenn man das beseitigt, laeuft's bei mir.
Verfasst: Dienstag 20. Oktober 2009, 11:17
von HWK
true != True
MfG
HWK
Verfasst: Dienstag 20. Oktober 2009, 11:30
von stuhlbein
Rebecca hat geschrieben:Bei mir gibt's nur NameErrors da man True gross schreibt, wenn man das beseitigt, laeuft's bei mir.
Ist mir nicht aufgefallen =(...
aber leider kommt auch nach der änderung immernoch ein Segfault. =(
Verfasst: Dienstag 20. Oktober 2009, 11:36
von Rebecca
Was passiert, wenn du einfach nur wx importierst? Vlt ist die Installation kaputt...
Verfasst: Dienstag 20. Oktober 2009, 11:38
von stuhlbein
Rebecca hat geschrieben:Was passiert, wenn du einfach nur wx importierst? Vlt ist die Installation kaputt...
``import wx'' funktioniert problemlos. So richtig sicher bin ich mir nicht worans liegen könnt =/
Verfasst: Dienstag 20. Oktober 2009, 11:54
von Zap
Dein Beispiel ist ja schon sehr minimal so dass man nicht wirklich viele Fehler machen kann.
Wenn auch dieses "Hello World" app bei dir fehschlägt ist mit Sicherheit irgendwas an deinem Setup faul
Code: Alles auswählen
import wx
app = wx.PySimpleApp()
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)
app.MainLoop()
Verfasst: Dienstag 20. Oktober 2009, 12:26
von stuhlbein
Zap hat geschrieben:Dein Beispiel ist ja schon sehr minimal so dass man nicht wirklich viele Fehler machen kann.
Wenn auch dieses "Hello World" app bei dir fehschlägt ist mit Sicherheit irgendwas an deinem Setup faul
Code: Alles auswählen
import wx
app = wx.PySimpleApp()
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)
app.MainLoop()
Code: Alles auswählen
>>> import wx
>>> app = wx.PySimpleApp()
Segmentation fault
=(
Verfasst: Dienstag 20. Oktober 2009, 12:38
von Zap
Wie sieht denn dein Environemt aus?
OS ?
Python Version ?
wx Version ?
Wie wurden Python und wx installiert?
Verfasst: Dienstag 20. Oktober 2009, 12:52
von stuhlbein
Zap hat geschrieben:Wie sieht denn dein Environemt aus?
OS ?
Ubuntu Linux 9.04
Zap hat geschrieben:
Python Version ?
Python 2.6.2
Zap hat geschrieben:
wx Version ?
wx.__version__ == 2.6.3.2
Zap hat geschrieben:
Wie wurden Python und wx installiert?
AFAIK (es ist halt schon eine knappe ewigkeit her

) mit aptitude, ganz sicher bin ich mir da aber selbst nichtmehr

Verfasst: Dienstag 20. Oktober 2009, 16:46
von tordmor
Bei mir funktioniert das mit dem selben setup. Vielleicht solltest Du einfach die entsprechenden Pakete neu installieren. python-wxgtk ist auch schon in der Version 2.8 verfügbar.
Verfasst: Mittwoch 21. Oktober 2009, 18:05
von stuhlbein
tordmor hat geschrieben:Bei mir funktioniert das mit dem selben setup. Vielleicht solltest Du einfach die entsprechenden Pakete neu installieren. python-wxgtk ist auch schon in der Version 2.8 verfügbar.
wxpython 2.8 (python-wxgtk2.

ist installiert, und ich hab es auch reinstalliert, allerdings betrifft das anscheinend nur das wxPython.wx modul anstelle vom wx modul (ich find die modul-namensgebung mehr als bescheiden, aber jo).
Woher das "wx" modul kommt weiss ich aber selbst nicht, mit sicherheit aber nicht aus den Ubuntu-repos.
Verfasst: Mittwoch 21. Oktober 2009, 18:53
von fhoech
Evtl. versuch mal folgendes: Falls eine saubere Deinstallation von wxPython (sowohl 2.6 als auch 2.8 ) über apt nicht möglich ist, so lösche mal in /usr/lib/python2.6/dist-packages (hoffe, der Pfad stimmt so) alle Verzeichnisse, die mit "wx" beginnen (typischerweise liegt wxPython in einem Verzeichnis das nach dem Schema wx-<version>-<plattform>-<encoding> benannt ist) als auch eine evtl. existierende wx.pth Datei. So solltest Du die zerschossene(n) wxPython-Installation(en) loswerden. Falls Du dann wxPython 2.6 nicht benötigst, installiere anschliessend nur python-wxgtk 2.8 über apt neu.
Verfasst: Donnerstag 22. Oktober 2009, 03:11
von str1442
Unter /var/lib/dpkg/info befinden sich Paketinformationen. Wenn man manuell löschen will, könnte man hier die entsprechenden *.list Dateien, die zu wx / wxPython gehören, heraussuchen und benutzen. Diese enthalten alle Dateien und Verzeichnisse, die von einem Paket installiert wurden. Könnte man auch mit einem kleinen Skript automatisieren. Ansonsten zuerst aptitude / apt-get (apt-get hat das Kommando iirc auch) "purge" benutzen, welches angeblich alles entfernt.
Verfasst: Donnerstag 22. Oktober 2009, 11:32
von Leonidas
str1442 hat geschrieben:Ansonsten zuerst aptitude / apt-get (apt-get hat das Kommando iirc auch) "purge" benutzen, welches angeblich alles entfernt.
Bei apt-get heißt es ``apt-get remove --purge`` und kann AFAIR nur auf Pakete angewendet werden die installiert sind, wohingegen aptitudes ``purge``-Befehl auch bei bereits deinstallierten Paketen funktioniert.
Im konkreten Fall hilft das aber nicht weiter, denn ``purge`` ist nur dafür da systemglobale Konfigurationsdateien (also welche in ``/etc``) zu löschen, die bei einem normalen ``remove`` unangetastet bleiben.
Verfasst: Sonntag 25. Oktober 2009, 13:01
von stuhlbein
Da ich nach einem Festplatten-fehler meine root-partition verloren hab (zum glück aber nicht /home ;D), hat sich das problem gewissermassen von selbst gelöst
Manchmal sind Festplatten-fehler doch was gutes

Danke trotzdem an alle die geholfen haben!
