【问题标题】:Running tkinter along with another TCL based program与另一个基于 TCL 的程序一起运行 tkinter
【发布时间】:2019-08-26 18:18:45
【问题描述】:

我使用免费的 Anaconda 发行版 1.9.6 和 python 3.7.1 在 tkinter 中运行一个接口,为此我需要一个用 TCL 编写的名为 SIMPSON 的科学模拟软件来执行。

有问题的软件: https://inano.au.dk/about/research-centers/nmr/software/simpson/ (此软件安装时没有恶意软件或任何不便,如果有人想测试这里讨论的软件除外)

问题是,即使是简单代码的执行:

import tkinter as tk

main_window = tk.Tk()
main_window.mainloop()

…返回错误信息:

文件“”,第 1 行,在 runfile('R:/tests/MWE/tkinter_test.py', wdir='R:/tests/MWE')

文件 "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", 第 704 行,在运行文件中 execfile(文件名,命名空间)

文件 "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", 第 108 行,在 execfile 中 exec(编译(f.read(),文件名,'exec'),命名空间)

文件“R:/tests/MWE/tkinter_test.py”,第 10 行,在 main_window = tk.Tk()

文件“C:\ProgramData\Anaconda3\lib\tkinter__init__.py”,第 2023 行, 在 初始化 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)

TclError:在以下目录中找不到可用的 init.tcl: {C:\Program Files (x86)\SIMPSON\tcl8.6} C:/ProgramData/Anaconda3/lib/tcl8.6 C:/ProgramData/lib/tcl8.6 C:/lib/tcl8.6 C:/ProgramData/library C:/library C:/tcl8.6.8/library C:/tcl8.6.8/库

C:/Program Files (x86)/SIMPSON/tcl8.6/init.tcl:版本冲突 包“Tcl”:有 8.6.8,正好需要 8.6.2 版本冲突 包“Tcl”:有 8.6.8,正好需要 8.6.2 在执行“package require -exact Tcl 8.6.2”时 (文件“C:/Program Files (x86)/SIMPSON/tcl8.6/init.tcl”第 19 行) 从“source {C:/Program Files (x86)/SIMPSON/tcl8.6/init.tcl}”中调用 (“上层”主体线 1) 从“uplevel #0 [list source $tclfile]”中调用

这可能意味着 Tcl 没有正确安装。

SIMPSON 正常执行。卸载 SIMPSON 并重新安装 Anaconda 后问题才消失,但一定有更简单的方法……

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    从错误消息中,我认为与 SIMPSON 捆绑的 Tcl 对 anaconda Tcl 造成了问题,因为两者都在不同的版本上。 SIMPSON 上的 Tcl 是 8.6.2,anaconda 上的 Tcl 是 8.6.8,它们满足 Tkinter 版本 8.6.8。这意味着 Tkinter 不能在 Tcl >= 8.6.8 下运行。

    在 SIMPSON 上更新 Tcl 应该可以修复错误。 您也可以尝试更新 Anaconda Tcl 或许可以解决问题。

    从命令行 (More Details) 更新 Anaconda 上的 Tcl/Tk。

    命令:

    conda install -c conda-forge tk 
    conda install -c conda-forge/label/gcc7 tk 
    conda install -c conda-forge/label/broken tk 
    conda install -c conda-forge/label/cf201901 tk
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 2021-06-06
      • 2017-04-04
      • 2013-02-19
      • 1970-01-01
      相关资源
      最近更新 更多