代码在第一次运行时按预期运行,但如果我再次运行它会导致自动化服务台崩溃。如果我在Python中运行它没有错误,我可以重复运行它。
" AD &#34。 AutomationDesk变量是否在automationdesk之外无效。测试我评论该部分,只使用DEBUG而不是 AD .DEBUG。
Automation desk是dSpace的软件。
from Tkinter import *
import Tkinter,tkFileDialog,tkMessageBox
from datetime import datetime
#print time
now = datetime.now()
print "Test Start time is: "+'%s:%s:%s' % (now.hour, now.minute,now.second)
#hide the main window
root = Tk()
root.withdraw()
#Debugger option
debugYN = tkMessageBox.askyesno("Debug", "Would you like to debug?")
if debugYN == True:
_AD_.DEBUG = 1
print "Debugging enabled"
else:
_AD_.DEBUG = 0
#File name selection
file = tkFileDialog.askopenfilename()
if file != None and debugYN == True:
print file
_AD_.DFCxlsPath = file
if _AD_.DEBUG == 1:
now = datetime.now()
print "Select XLS & Debug Completed at "+'%s:%s:%s' % (now.hour, now.minute,now.second)
root = None
#root.destroy()
del file
del debugYN
#remove now here because no matter what we print the start time
del now
答案 0 :(得分:1)
我在尝试在AutomationDesk中使用Tkinter时遇到了同样的问题,所以我联系了他们寻求支持。以下是他们的官方回应:
"我们不建议在AutomationDesk Exec块中使用Tkinter。我们建议使用内部'对话框'您可以从AutomationDesk中的库浏览器访问的库。此外,Tkinter不是线程安全的。
请在您的电脑上查看以下文档: C:\ Program Files(x86)\ Common Files \ dSPACE \ HelpDesk 2014-A \ Print \ AutomationDeskGuide.pdf>疑难解答>使用Tkinter
原因是Tkinter和Python 2.7之间交互中的线程问题。互联网上还有其他关于此问题的报告。例如:http://bugs.python.org/issue11077"
不幸的是,Dialogs库不是很强大,而且我很难找到好的文档。