Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在wxpythongui中加载并运行另一个.py文件_Wxpython - Fatal编程技术网

在wxpythongui中加载并运行另一个.py文件

在wxpythongui中加载并运行另一个.py文件,wxpython,Wxpython,已经使用wx python编写了GUI脚本。我所需要的只是加载另一个python文件,并使用GUI为python文件的变量提供输入(值)的选项运行。并显示python文件结果。 我能够加载需要运行的文件…这里是我的一些代码,它是PyInstaller的GUI前端。它运行带有一些标志的pyinstaller.py代码,并将输出发送到textctrl小部件。它使用wx.Yield来避免锁定接口,尽管将代码移动到自己的线程是另一种选择 类GooeyPi(wx.Frame): 定义初始化(self,*a

已经使用wx python编写了GUI脚本。我所需要的只是加载另一个python文件,并使用GUI为python文件的变量提供输入(值)的选项运行。并显示python文件结果。 我能够加载需要运行的文件…

这里是我的一些代码,它是PyInstaller的GUI前端。它运行带有一些标志的
pyinstaller.py
代码,并将输出发送到
textctrl
小部件。它使用
wx.Yield
来避免锁定接口,尽管将代码移动到自己的线程是另一种选择

类GooeyPi(wx.Frame):
定义初始化(self,*args,**kwargs):
super(GooeyPi,self)。_init__;(*args,**kwargs)
...
#结果在这里。只读样式,因此人们无法使用它进行书写。
self.txtresults=wx.TextCtrl(self.panel,大小=(420200),
样式=wx.TE_多行| wx.TE_只读)
提交时的定义(自我,e):
...
#getflags返回类似于['python.exe','pyinstaller.py'--someflag'--someotherflag']
flags=util.getflags(self.fbb.GetValue())
debug('调用子进程{}'。格式(标志))
对于self.CallInstaller中的行(标志):
self.txtresults.AppendText(行)
def CallInstaller(自身,标志):
'生成器函数,在命令输出的每一行上产生
p=subprocess.Popen(标志,stdout=subprocess.PIPE,stderr=subprocess.stdout)
虽然(正确):
retcode=p.poll()
line=p.stdout.readline()
wx.Yield()#防止GUI冻结
生产线
如果(retcode不是None):
yield(“Pyinstaller返回返回代码:{}”。格式(retcode))
打破
和我的getflags函数,以供参考。它使用
sys.executable
查找python二进制文件的路径,并使用
os.path.join
查找要运行的python脚本的路径。然后,它会根据我的配置文件附加一些标志。然后返回结果列表

def getflags(fname):
标志=[]
flags.append(sys.executable)#运行pyinstaller的Python可执行文件
flags.append(os.path.join(config['pyidir'],'pyinstaller.py'))
如果配置['noconfirm']:
flags.append('--noconfirm')
如果配置['singlefile']:
flags.append('--onefile')
如果配置['ascii']:
flags.append('--ascii')
如果配置['windowed']:
flags.append('--noconsole')
如果配置['upxdir']!='':
flags.append('--upx dir='+config['upxdir']))
如果pyversion(配置['pyidir'])==2.1:
flags.append('--distpath='+os.path.dirname(fname))
其他:
flags.append('--out='+os.path.dirname(fname))
flags.append(fname)
返回(标志)

我给出了答案,但我不确定它是否回答了您的问题,因为它不是很清楚。举一个例子,说明你尝试了什么,但什么不起作用,这会对我们有所帮助。