Seite 1 von 1

filebrowsebutton Demo - IDLE Subprocess: no IP port passed

Verfasst: Dienstag 13. Juli 2010, 10:53
von PeterParker
Hallo,

ich habe vor ein paar Tagen mit Python angefangen und auch schon die ersten kleinen Anwendungen geschrieben. Nun will ich eine GUI mit wxPython bauen.
Dazu habe ich mir die Demo 'filebrowsebutton' angeschaut. In der Demo funktioniert das Programm, aber wenn ich den Code in der Python shell ausführe bekomme ich die Meldung:

"IDLE Subprocess: no IP port passed in sys.argv."

Das liegt wahrscheinlich an der letzten Zeile:

Code: Alles auswählen

run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
Ich habe schon verschiedene Sachen ausprobiert. Hat leider nichts gebracht.
Ich benutze Python 2.7.
Wie kann ich den Fehler beheben? Ich fraue mich über jeden Hinweis.

Hier der Gesamtcode:

Code: Alles auswählen


""" Demonstrate filebrowsebutton module of the wxPython.lib Library.



14.1.2001 Bernhard Reiter <bernhard@intevation.de>

    Added demo for DirBrowseButton and improved overview text.

"""



import  wx

import  wx.lib.filebrowsebutton as filebrowse



#----------------------------------------------------------------------



class TestPanel(wx.Panel):

    def __init__(self, parent, ID, log):

        wx.Panel.__init__(self, parent, ID)

        self.log = log



        self.fbb = filebrowse.FileBrowseButton(

            self, -1, size=(450, -1), changeCallback = self.fbbCallback

            )



        self.fbbh = filebrowse.FileBrowseButtonWithHistory(

            self, -1, size=(450, -1),  changeCallback = self.fbbhCallback

            )

            

        self.dbb = filebrowse.DirBrowseButton(

            self, -1, size=(450, -1), changeCallback = self.dbbCallback

            )



        self.fbbh.callCallback = False

        self.fbbh.SetHistory(['You', 'can', 'put', 'some', 'filenames', 'here'], 4)



        sizer = wx.BoxSizer(wx.VERTICAL)

        sizer.Add(self.fbb, 0, wx.ALL, 5)

        sizer.Add(self.fbbh, 0, wx.ALL, 5)

        sizer.Add(self.dbb, 0, wx.ALL, 5)

        box = wx.BoxSizer()

        box.Add(sizer, 0, wx.ALL, 20)

        self.SetSizer(box)





    def fbbCallback(self, evt):

        self.log.write('FileBrowseButton: %s\n' % evt.GetString())





    def fbbhCallback(self, evt):

        if hasattr(self, 'fbbh'):

            value = evt.GetString()

            if not value:

                return

            self.log.write('FileBrowseButtonWithHistory: %s\n' % value)

            history = self.fbbh.GetHistory()

            if value not in history:

                history.append(value)

                self.fbbh.SetHistory(history)

                self.fbbh.GetHistoryControl().SetStringSelection(value)





    def dbbCallback(self, evt):

        self.log.write('DirBrowseButton: %s\n' % evt.GetString())





#----------------------------------------------------------------------



def runTest(frame, nb, log):

    win = TestPanel(nb, -1, log)

    return win





#----------------------------------------------------------------------



overview = """<html><body>

<h2>class FileBrowseButton:</h2>

<small><pre>

%s

</pre></small>



<h2>class FileBrowseButtonWithHistory(FileBrowseButton):</h2>

<small><pre>

%s

</pre></small>



<h2>class DirBrowseButton(FileBrowseButton):</h2>

<small><pre>

%s

</pre></small>



</body><</html>

""" % ( filebrowse.FileBrowseButton.__doc__,

        filebrowse.FileBrowseButtonWithHistory.__doc__ , 

        filebrowse.DirBrowseButton.__doc__

        ) 





if __name__ == '__main__':

    import sys,os

    import run

    print 'sys.argv[0]' + sys.argv[0]

    print sys.argv[1:]

    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])

    #run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])

Re: filebrowsebutton Demo - IDLE Subprocess: no IP port pass

Verfasst: Dienstag 13. Juli 2010, 11:30
von BlackJack
@PeterParker: Starte das mal nicht aus IDLE heraus.

Re: filebrowsebutton Demo - IDLE Subprocess: no IP port pass

Verfasst: Dienstag 13. Juli 2010, 12:38
von PeterParker
@Blackjack
Danke für die Antwort.
Habe ich gemacht über Windows 7 shell gestartet. Jetzt kommt die Meldung "ImportError: No module named run".

Re: filebrowsebutton Demo - IDLE Subprocess: no IP port pass

Verfasst: Dienstag 13. Juli 2010, 12:56
von BlackJack
@PeterParker: Das dürfte das `run`-Modul aus der wxPython-Demo sein, aber das ist ja Bestandteil des Demoprogramms -- was willst Du denn damit in Deinem Programm?

Re: filebrowsebutton Demo - IDLE Subprocess: no IP port pass

Verfasst: Dienstag 13. Juli 2010, 16:21
von PeterParker
@BlackJack
Ich will nur die Funktion zum öffnen eines Verzeichnises nutzen.

Re: filebrowsebutton Demo - IDLE Subprocess: no IP port pass

Verfasst: Dienstag 13. Juli 2010, 17:34
von Dav1d
PeterParker, du solltest dich zuerst mit den Grundlagen von Python beschäftigen, dann erst mit wxPython.