python和TCL:如何运行需要控制台的脚本

时间:2013-10-09 14:55:00

标签: python tkinter tcl

我正在尝试从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对象一起创建控制台?

1 个答案:

答案 0 :(得分:1)

啊,console命令。

控制台命令仅可用

  • 在Windows上
  • 只有愿望
  • 且仅限于主要的间隔。

我建议你改用tkcon。您只需要找到tkcon.tcl文件,在源GetStatsFirst2.tcl之前获取它并执行以下Tcl命令:

interp alias {} console {} tkcon

然后使用tkcon作为控制台。

编辑:您可以使用

执行该Tcl命令
x.tk.eval('interp alias {} console {} tkcon')
在Python中