Есть два скрипта, один вызывает другой с аргументами (* args), а другой вызывается и отображает форму, отображение формы работает нормально, но никакие аргументы не передаются из вызывающего скрипта.Я попытался запустить вызываемый скрипт через командную строку и получил тот же результат.Здесь фрагмент обоих сценариев 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) # works but args not transfered
#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) # works but args not transfered
#subprocess.call(['python', 'sy0001.py', 'abcd', 'ver0000', 'noby']) # works but args not transfered
#subprocess.call('python', 'sy0001.py', 'abcd', 'ver0000', 'noby') buffer size error
self.Destroy()
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()
Я протестировал несколько методов вызова, но результаты такие же, как и следующие: sy0001 init () == ok == {} == 2ok == Нет == parm1ok =
Я использую win 10 python2.7 wxpython3.0, и эти версии должны остаться.Признателен, если кто-то указывает, что я делаю неправильно.Или победа 10 вызывает это?