【问题标题】:python and TCL: how to run scripts that need a consolepython 和 TCL:如何运行需要控制台的脚本
【发布时间】:2013-10-09 14:54:59
【问题描述】:

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

【问题讨论】:

    标签: python tkinter tcl


    【解决方案1】:

    啊,console 命令。

    控制台命令仅可用

    • 在 Windows 上
    • 只有希望
    • 并且仅在主解释器中。

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

    interp alias {} console {} tkcon
    

    这将使用 tkcon 作为控制台。

    编辑:你可以用

    执行那个Tcl命令
    x.tk.eval('interp alias {} console {} tkcon')
    

    在 Python 中。

    【讨论】:

    • 您给出的命令是 tcl 命令,但问题是询问如何从 python / tkinter 脚本中使用 tcl。您的回答并没有太大帮助。
    • @BryanOakley 那么source 是什么?一个python命令? op 知道如何评估 Tcl 命令。
    • 嗨 Johannes,这似乎起到了作用,因为我现在遇到了一个不同的错误。剧本可能更进一步。我想我会将您的回复标记为答案。
    • 这是说它无法加载 dll。该 dll 特定于我必须加载的 TCL 库。我不确定发生了什么。但也许这与它有关:{警告!!!无法从 Appinfo 添加路径:找不到 AppInfo 注册表项警告!!!无法从 Appinfo 添加路径:找不到 AppInfo 注册表项}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2020-02-25
    相关资源
    最近更新 更多