segmention fault

Plattformunabhängige GUIs mit wxWidgets.
Antworten
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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...
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Bei mir gibt's nur NameErrors da man True gross schreibt, wenn man das beseitigt, laeuft's bei mir.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

true != True
MfG
HWK
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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. =(
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Was passiert, wenn du einfach nur wx importierst? Vlt ist die Installation kaputt...
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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 =/
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

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()
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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
=(
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Wie sieht denn dein Environemt aus?

OS ?
Python Version ?
wx Version ?
Wie wurden Python und wx installiert?
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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 :P) mit aptitude, ganz sicher bin ich mir da aber selbst nichtmehr ;)
tordmor
User
Beiträge: 100
Registriert: Donnerstag 20. November 2008, 10:29
Wohnort: Stuttgart

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.
http://www.felix-benner.com
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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.8) 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.
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

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.
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

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 :D
Danke trotzdem an alle die geholfen haben! :)
Antworten