Re: args and kargs in python 2.7 wxpython 3.0 win10

Robin Dunn <[email protected]> Tue, 15 May 2018 10:25:49 -0700 (PDT)
Newsgroups gmane.comp.python.wxpython.devel
Message-ID <[email protected]>
IIUC, it looks like you are expecting the command-line arguments to be 
passed into MyFrame.__init__ in *args and/or **kargs. That is not how it 
works, command-line args are available in Python's sys.argv list.

--Robin


On Thursday, May 10, 2018 at 8:00:52 PM UTC-7, [email protected] wrote:
>
> There are two scripts, one calls another scripts with arguments and 
> another will display a form using received argument.  The second script 
> display a form ok, but there is no argument received.  I am puzzling this 
> is due to windows 10 (not linux).  I have tested the second scripts via 
> command line but the result is the same, no argument gets into the script.
> Here are two scripts snippet: 
>  
> python 2.7.14   wxPython3.0.2.0-py27 win 10
>
> sy0000.py  calling  sy0001.py
>
> def CallPGM( self, event ):
> lstParms = ['python', 'sy0001.py']
> dctParms = {"pgm_version_id": "ver0000"}
> lstArgs = ['ver0000', 'noby']
> # os.system("python sy0001.py " + "ver0000")    # works but args not 
> transfered
> # strParms = "python sy0001.py " + "ver0000"
> # os.system(strParms)
> # # subprocess.Popen(lstParms + lstArgs)    # works but args not 
> transfered
> # # subprocess.Popen('python', 'sy0001.py', 'abcd', 'ver0000', 'noby')  # 
> buffer size error
> # subprocess.Popen(['python', 'sy0001.py', 'abcd', 'ver0000', 'noby'])  # 
> works but args not transfered
> # subprocess.call(lstParms + lstArgs)
> subprocess.call(['python', 'sy0001.py', 'abcd', 'ver0000', 'noby'])  # 
> works but args not transfered
> # subprocess.call('python', 'sy0001.py', 'abcd', 'ver0000', 'noby')  
> buffer size error
>
>
> sy0001.py called by  sy0000.py
>
> import wx 
>
> class MyFrame( wx.Frame ):
>
> def __init__( self, parm1, *args, **kargs ): 
> wx.Frame.__init__ ( self, parm1, id = wx.ID_ANY, title = 
> u"BioInformatics", pos = wx.DefaultPosition, size = wx.Size( 1200,700 ), 
> style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL, *args, **kargs )
> print "sy0001 init "
> print args
> print "==ok="
> print kargs
> print "==2ok="
> print parm1
> print "==parm1ok="
>
>
>
> app = wx.App(False) 
> frame = MyFrame(None) 
> frame.Show(True) 
> #start the applications 
> app.MainLoop()
>
>
> The result after print (all testing methods): 
> sy0001 init
> ()
> ==ok==
> {}
> ==2ok==
> None
> ==parm1ok=
>
> I have tested several calling methods as shown above with # (stated the 
> result after the script) 
>
> Via command line
> I entered   python sy0001.py ver0000.  The result is the same as above.  
> Can somebody advise me what I am doing wrong.  Or I also puzzling if this 
> problem resides only with win10
>
> ps  I must stay versions of python and wxpython as they are due to running 
> some other external function.
>

-- 
You received this message because you are subscribed to the Google Groups "wxPython-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.