大侠请留步!!!wxpython程序,在Komodo IDE 5中可以正常运行,双击脚本运行出错呢

tunaG 2012-05-25 05:53:52
用python 和 wxpython 写的一个工具
在Komodo IDE 5中可以运行成功
双击脚本运行出错
求解脱!!!
...全文
182 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tunaG 2012-05-28
  • 打赏
  • 举报
回复

def test_result(data,para): #将测试结果存到文件里
cmd = 'Begin-------------------------------------------'

if data == cmd:
para.textCtr.SetValue(data + '\n');
else:
para.textCtr.AppendText(data + '\n');

tmp = open('test_result.txt','a')
tmp.write(data + '\n')
tmp.close()

def ExecuteTcl(p,para):
#Mutex = threading.Lock()
#得到用户输入
global SCRIPTPATH
global VALUENUMBER
suc = 1
err = 0
n = 0
MyTcl = Tkinter.Tcl()
global total_num
global flag
f1=wx.Font(15,wx.ROMAN,wx.ITALIC,wx.BOLD)#修改字体样式
f=wx.Font(20,wx.NORMAL,wx.NORMAL,wx.NORMAL)#修改字体样式

while (1): #进入无限循环直到界面被关闭
time.sleep(0.001)
if ((SCRIPTPATH != '') and ( VALUENUMBER != 0 )):

if flag == 1:
n = 0
for key in para.n_value:
n = n + 1
else:
continue

if (n == VALUENUMBER) :
line = 'Begin-------------------------------------------'
test_result(line,para)
#para.textCtr.AppendText(line + '\n');

cmd = ''
cmd = 'source' + ' ' + SCRIPTPATH
MyTcl.eval(cmd)
test_result('path:'+ SCRIPTPATH,para)
#para.textCtr.AppendText('path:'+ cmd + '\n');
cmd = 'test'
for key in para.n_value:
cmd = cmd +' '+ para.n_value[key]

test_result('cmd:'+ cmd,para)

if flag == 1:
test_result('-----------------1',para)
test_result(cmd,para)

returnFromTcl = MyTcl.eval(cmd)
test_result('-----------------2',para)
para.resultCtrl.SetInsertionPoint(0)
#test_result('2:',para)
if returnFromTcl == str(suc):
cmd = 'SUCCESS'
colour = 'BLUE'
else:
cmd = 'ERROR'
colour = 'RED'
test_result('-----------------3',para)
para.resultCtrl.SetValue(cmd);

para.resultCtrl.SetStyle(0,100,wx.TextAttr(colour,wx.NullColor,f))
test_result('result: '+ cmd,para)
cmd = 'End---------------------------------------------'
test_result(cmd,para)
para.grid.ClearGrid()#清空表格
para.grid.SetGridCursor(0,0)
para.n_value = {}
flag = 0
n = 0



tunaG 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
如果没有报错的话可能就是你的程序逻辑上有问题了,自己用工具调试一下,或者把你的代码贴完整贴好一点,这没对齐格式的怎么看啊。
[/Quote]

def test_result(data,para): #将测试结果存到文件里
cmd = 'Begin-------------------------------------------'

if data == cmd:
para.textCtr.SetValue(data + '\n');
else:
para.textCtr.AppendText(data + '\n');

tmp = open('test_result.txt','a')
tmp.write(data + '\n')
tmp.close()

def ExecuteTcl(p,para):
#Mutex = threading.Lock()
#得到用户输入
global SCRIPTPATH
global VALUENUMBER
suc = 1
err = 0
n = 0
MyTcl = Tkinter.Tcl()
global total_num
global flag
f1=wx.Font(15,wx.ROMAN,wx.ITALIC,wx.BOLD)#修改字体样式
f=wx.Font(20,wx.NORMAL,wx.NORMAL,wx.NORMAL)#修改字体样式

while (1): #进入无限循环直到界面被关闭
time.sleep(0.001)
if ((SCRIPTPATH != '') and ( VALUENUMBER != 0 )):

if flag == 1:
n = 0
for key in para.n_value:
n = n + 1
else:
continue

if (n == VALUENUMBER) :
line = 'Begin-------------------------------------------'
test_result(line,para)
#para.textCtr.AppendText(line + '\n');

cmd = ''
cmd = 'source' + ' ' + SCRIPTPATH
MyTcl.eval(cmd)
test_result('path:'+ SCRIPTPATH,para)
#para.textCtr.AppendText('path:'+ cmd + '\n');
cmd = 'test'
for key in para.n_value:
cmd = cmd +' '+ para.n_value[key]

test_result('cmd:'+ cmd,para)

if flag == 1:
test_result('-----------------1',para)
test_result(cmd,para)###########################双击时走到这个位置

returnFromTcl = MyTcl.eval(cmd)
test_result('-----------------2',para)###################
para.resultCtrl.SetInsertionPoint(0)
#test_result('2:',para)
if returnFromTcl == str(suc):
cmd = 'SUCCESS'
colour = 'BLUE'
else:
cmd = 'ERROR'
colour = 'RED'
test_result('-----------------3',para)
para.resultCtrl.SetValue(cmd);

para.resultCtrl.SetStyle(0,100,wx.TextAttr(colour,wx.NullColor,f))
test_result('result: '+ cmd,para)
cmd = 'End---------------------------------------------'
test_result(cmd,para)
para.grid.ClearGrid()#清空表格
para.grid.SetGridCursor(0,0)
para.n_value = {}
flag = 0
n = 0
tunaG 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
这一般是环境配置的问题,查看环境变量配置
[/Quote]
大哥,怎么看环境变量配置对不对
zengna_com 2012-05-28
  • 打赏
  • 举报
回复
这一般是环境配置的问题,查看环境变量配置
anonymous0502 2012-05-27
  • 打赏
  • 举报
回复
如果没有报错的话可能就是你的程序逻辑上有问题了,自己用工具调试一下,或者把你的代码贴完整贴好一点,这没对齐格式的怎么看啊。
iambic 2012-05-26
  • 打赏
  • 举报
回复
不要双击。在cmd里执行。这样在抛异常的情况下可以看到错误信息。
tunaG 2012-05-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

报什么错?
[/Quote]
同上
tunaG 2012-05-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

报什么错?
[/Quote]
#para.textCtr.AppendText('path:'+ cmd + '\n');
cmd = 'test'
for key in para.n_value:
cmd = cmd +' '+ para.n_value[key]

test_result('cmd:'+ cmd,para)

if flag == 1:
test_result('-----------------1',para
test_result(cmd,para))#这句可以显示到界面上

returnFromTcl = MyTcl.eval(cmd)
test_result('-----------------2',para)#双击执行时:这句没有打印,貌似程序没走到这就停住了,以下的也都不执行了
libralibra 2012-05-26
  • 打赏
  • 举报
回复
出错后的报错信息是什么?
anonymous0502 2012-05-25
  • 打赏
  • 举报
回复
报什么错?

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧