0

我正在尝试从 Python 运行 TCL 脚本。我在 TCL 脚本(我必须使用)中包含一个第三方 TCL 包,它调用“控制台”。因此,如果我只运行以下命令:

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 and eval),我觉得有办法解决这个问题。在我看来,我正在导入的包需要存在 TK 控制台。在命令行上或通过 运行时subprocess.call,一切正常,但在这些情况下会打开一个控制台。我很确定这个包实际上是在寻找一个控制台。有没有办法与 Tk 对象一起创建控制台?

4

1 回答 1

1

啊,console命令。

控制台命令仅可用

  • 在 Windows 上
  • 只有心愿
  • 并且仅在主插播中。

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

interp alias {} console {} tkcon

然后使用 tkcon 作为控制台。

编辑:您可以执行该 Tcl 命令

x.tk.eval('interp alias {} console {} tkcon')

在 Python 中。

于 2013-10-09T15:55:08.027 回答