IDLE 警告说我的 TCL 版本过旧,即使我已经安装了更新的版本。

19

我已经安装了ActiveTcl8.6.1.1.297588-macosx10.5-i386-x86_64-threaded在我的OS X 10.9.1上。然而,当我通过在终端中运行idle3来启动IDLE时,IDLE窗口中会显示以下警告:

Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.

我安装的更新版ActiveTcl为什么不被IDLE识别?我该如何纠正这个问题?

编辑:进一步说明。

$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

$ which tclsh
/usr/bin/tclsh

$ ls -l /usr/bin/tclsh*
lrwxr-xr-x  1 root  wheel  17 Jan 15 10:45 /usr/bin/tclsh -> /usr/bin/tclsh8.6
lrwxr-xr-x  1 root  wheel  67 Oct 25 19:59 /usr/bin/tclsh8.4 -> ../../System/Library/Frameworks/Tcl.framework/Versions/8.4/tclsh8.4
lrwxr-xr-x  1 root  wheel  67 Oct 25 19:59 /usr/bin/tclsh8.5 -> ../../System/Library/Frameworks/Tcl.framework/Versions/8.5/tclsh8.5
lrwxr-xr-x  1 root  wheel  23 Jan 15 10:45 /usr/bin/tclsh8.6 -> /usr/local/bin/tclsh8.6

$ ls -l /usr/local/bin/tclsh*
lrwxr-xr-x  1 root  admin      8 Jan 15 10:40 /usr/local/bin/tclsh -> tclsh8.6
-rwxr-xr-x  1 root  admin  41716 Oct 27 04:45 /usr/local/bin/tclsh8.6

1
很可能你需要找出ActiveTCL二进制文件的位置并调整你的路径... 'which tclsh' 可能会有所帮助。 - Niall Byrne
@NiallByrne:在终端提示符下输入 which tclsh 后,会显示以下路径:/usr/bin/tclsh。然而,在我的 /usr/bin 目录下没有名为 tclsh 的文件或目录。最接近的匹配是一个名为 tcsh 的程序。 - Evan Aad
@NiallByrne:好的,我不知道为什么之前找不到tclsh文件,但现在可以了。我在/usr/bin目录下有三个与tcl相关的文件:tclsh、tclsh8.4、tclsh8.5。你能帮我继续进行吗?另外,没有tclsh8.6会有问题吗? - Evan Aad
@NiallByrne:所以我已经找到了包含“tclsh8.6”命令的目录,并将符号链接重定向到“/usr/bin/tclsh”。然而,运行“idle”仍会产生与之前相同的警告。 - Evan Aad
tcsh和tclsh完全不同,除了名称中字母的近似匹配外,它们没有任何关系。 - Donal Fellows
ActiveTcl 应该在 OSX 上使用框架安装。如果你查找 /Library/Frameworks/Tcl.framework/Versions/8.6/Tcl 会发生什么?(这就是我的系统上的位置。) - Donal Fellows
8个回答

12
根据Python官网上“如何选择Tk库”部分的"在Mac OS X上使用IDLE和tinter with Tcl/Tk"页面,从该网站下载的Python for Mac OS X安装程序会在运行时动态链接到Tcl/Tk Mac OS X框架。Tcl/Tk的主要版本是在创建安装程序时确定的,无法被覆盖。针对Python 3.4.x、3.3.x、3.2.x和2.7.x的64位/32位Mac OS X安装程序会动态链接到Tcl/Tk 8.5框架。因此,看起来:

  1. 当前OS X的Python安装程序不支持最新的ActiveTcl版本(即8.6)。
  2. Python使用的Tcl/Tk版本是在安装过程中硬编码的,以后无法更改。

基于这些观察结果,解决方案很明确:

  1. 安装最新的8.5 ActiveTcl版本。
  2. 重新安装Python。

我已经按照这些步骤操作,现在似乎一切正常。


10

我的操作系统是OS X 10.10.5。

  1. 我安装了Python 3.4.3。
  2. 运行IDLE,出现警告:"使用的Tcl/Tk版本(8.5.9)可能不稳定"。
  3. 前往[Active State][1]并下载建议版本:"Download ActiveTcl 8.6.4 for Mac OS X (10.5+, x86_64/x86)"。
  4. 运行安装程序:"ActiveTcl8.6.4.1.299124-macosx10.5-i386-x86_64-threaded.dmg"
  5. 重新安装:python-3.4.3-macosx10.6.pkg
  6. 运行IDLE - 仍然显示同样的消息,"使用的Tcl/Tk版本(8.5.9)可能不稳定"。
  7. 检查 - 是的,8.6.4已经安装成功。
  8. 返回Active State并获取之前的版本:"ActiveTcl8.5.18.0.298892-macosx10.5-i386-x86_64-threaded.dmg"
  9. 重新安装:python-3.4.3-macosx10.6.pkg
  10. 运行IDLE - 没有警告。

2
按照这些步骤操作,一切都运行得很顺利。第 8 步所需的先前版本可以在 http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 找到。 - Vincent
1
我正在使用Homebrew卸载和重新安装Python,但没有解决错误。当我使用当前的.pkg文件时,它可以正常工作。 - Jacktose
我正在使用MacOS 10.14.3,Python版本为3.7.2。我可以确认,我尝试了几个建议,但只有这一个有效。 - falux

8

这对我有用

警告:使用的Tcl/Tk版本(8.5.9)可能不稳定。

brew remove python3

brew install homebrew/dupes/tcl-tk

brew install python3 --with-tcl-tk

brew linkapps python3

1
我尝试使用python代替python3,现在当我尝试打开IDLE时它会崩溃。有什么建议吗? - aberger

1
尝试下载 Python 所需的版本:8.5.X。版本 8.6.X 未被识别。

1

我遇到了同样的问题。你可以通过下载Active Tcl 8.5.17 version来解决这个问题,而不是下载最新版本。


0

在使用已安装Python 2.7.9 / 3.4.1的OSX 10.10上启动IDLE后,我遇到了同样的问题(并且看到了与原始发布者相同的$ PATH变量信息)。

我访问了此 python支持页面

我查阅了他们的“当前建议摘要”表格以确定所需的Tcl/Tk; 它链接到可下载的.DMG,我安装了它,然后IDLE没有警告地运行。

我无需重新安装python。


0

在High Sierra上似乎出现了问题。按照步骤后,当打开一个文件时,idle3会崩溃,并显示“无效或过早释放的自动释放池”的警告,提示FIFinderSyncExtensionHost安装在两个位置。


0

我是如何解决这个问题的:

首先我们需要安装ActiveTcl8.5.18.0

  1. 下载地址:https://www.activestate.com/activetcl/downloads

enter image description here

  1. 运行您已下载的文件。

  2. 按下 CTRL+点击 (无论是 Mac 或 Windows)来打开上下文菜单。如果出现错误信息 can't be opened, because it is from unidentified developer,则需要按下 CTRL+点击,而不是双击。

enter image description here

  1. 在上下文菜单中点击打开
  2. 在弹出的对话框中点击打开(左侧,非蓝色按钮)。
  3. 安装。

如果这不能解决问题,我们需要卸载Python。这篇文章真的帮了我很多。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接