我正在尝试从Python运行TCL脚本。我有一个TCL脚本中包含的第三方TCL包(我必须使用它),它调用“console”。因此,如果我只运行以下内容:
z = x.tk.eval('source C:/somePath/GetStatsFirst2.tcl')
我收到以下错误:
pydev debugger: starting
WARNING!!! Unable to add paths from Appinfo: Could not find AppInfo registry entry
WARNING!!! Unable to add paths from Appinfo: Could not find AppInfo registry entry
Traceback (most recent call last):
File "C:\Users\lab\Documents\Public\eclipse\plugins\org.python.pydev_2.7.5.2013052819\pysrc\pydevd.py", line 1397, in <module>
debugger.run(setup['file'], None, None)
File "C:\Users\lab\Documents\Public\eclipse\plugins\org.python.pydev_2.7.5.2013052819\pysrc\pydevd.py", line 1090, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "C:\Users\lab\Documents\Public\workspace\Version 1\....\TC1.py", line 55, in <module>
test()
File "C:\Users\lab\Documents\Public\workspace\Version 1\....\TC1.py", line 42, in test
z = x.tk.eval('source C:/Users/lab/Documents/Public/TCL/Scripts/GetStatsFirst2.tcl')
_tkinter.TclError: invalid command name "console"
这肯定与我正在使用的软件包有关,问题可能是不可避免的。由于没有打开TK控制台(因为我正在使用TK inter class和eval
),我觉得有一种解决方法。在我看来,我导入的包需要TK控制台的存在。在命令行或subprocess.call
上运行时,一切正常,但在这些情况下会打开一个控制台。我很确定该软件包实际上正在寻找一个控制台。有没有办法与Tk对象一起创建控制台?
答案 0 :(得分:1)
啊,console
命令。
控制台命令仅可用
我建议你改用tkcon。您只需要找到tkcon.tcl
文件,在源GetStatsFirst2.tcl
之前获取它并执行以下Tcl命令:
interp alias {} console {} tkcon
然后使用tkcon作为控制台。
编辑:您可以使用
执行该Tcl命令x.tk.eval('interp alias {} console {} tkcon')
在Python中。