【问题标题】:version conflict for package "Tk": have 8.5.2, need exactly 8.5.15包“Tk”的版本冲突:有 8.5.2,正好需要 8.5.15
【发布时间】:2023-03-31 01:05:02
【问题描述】:

我正在尝试编译一个程序(python2.7),但无论我做什么,我都会不断收到此错误:

C:/Python27/tcl/tk8.5/tk.tcl: version conflict for package "Tk": have 8.5.2, need exactly 8.5.15
version conflict for package "Tk": have 8.5.2, need exactly 8.5.15
while executing
"package require -exact Tk  8.5.15"
    (file "C:/Python27/tcl/tk8.5/tk.tcl" line 18)
    invoked from within
"source C:/Python27/tcl/tk8.5/tk.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list source $file]"

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

谁能给我解释一下这里有什么问题?

【问题讨论】:

  • 听起来您需要不同版本的 Tk。您是否尝试过卸载当前版本并运行pip install Tk==8.5.15
  • 我很抱歉我的无知,但我该怎么做呢?我以前从未使用过 Tcl(不太确定它是什么)。即使在我的代码中,我也从不明确地“使用 Tcl”,可能我导入的库之一会这样做。
  • pip uninstall tk 然后运行我之前评论中的行
  • 我可能应该提到我正在运行 Windows 7。不确定是否相关,但我认为这是一个终端命令。
  • pip 在 Windows 中工作。它需要更多的设置,但有可能让它工作。我个人不使用 Windows,所以我不知道如何设置它。

标签: python python-2.7 tcl tk


【解决方案1】:

第一步:打开C:\Python27\tcl\tcl8.5\init.tcl

if {[info commands package] == ""} {
    error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]"
}
package require -exact Tcl 8.5.15 

8.5.15 改为 8.5.2

第二步:打开C:\Python27\tcl\tk8.5\tk.tcl

package require Tcl 8.5 ;# Guard against [source] in an 8.4- interp before
            ;# using 8.5 [package] features.
# Insist on running with compatible version of Tcl
package require Tcl 8.5.0
# Verify that we have Tk binary and script components from the same release
package require -exact Tk  8.5.15

8.5.15 改为 8.5.2

【讨论】:

  • 如果其他人遇到这个问题:我正在使用 py2exe 创建分发包。我遇到了与原始帖子中的错误类似的错误。我的 Python27 目录中的 tcl 很好,但是我必须更改由项目文件夹中的 py2exe 创建的 dist 目录中的 tk.tcl。只需确保查看错误消息的路径,以便知道要更改哪个。
  • 为什么要投票?这基本上是在玩系统。谁知道这会导致什么样的错误?
【解决方案2】:

Tk 有(概念上)两部分:

  1. 实现视图的动态库文件
  2. 实现默认控制器的脚本库文件。

这些必须完全相互匹配(这是保证它们正常工作的唯一方式)。默认情况下,Tk DLL 包含它可以找到其脚本的路径,但它可以被环境变量覆盖;该机制主要用于支持安装前测试,尽管有时它会被使用而不是实际使用。

您似乎已经配置了一些东西,以便您拥有一个版本的 DLL (8.5.2) 而另一个版本的脚本 (8.5.15)。这可能是因为您链接了错误版本的 DLL,或者因为您将环境变量 (TK_LIBRARY) 设置为指向错误的安装。从错误消息中有点难以分辨:它真正说的是版本不匹配。

【讨论】:

  • 我在安装 Python 时遇到过几次这个问题:我怀疑他们做错了什么,而他们通常会逃脱惩罚……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 2019-10-12
  • 2018-01-31
  • 2021-10-18
相关资源
最近更新 更多