【问题标题】:How do I link the ActiveState distribution of Tcl/Tk to HomeBrew installed Python如何将 Tcl/Tk 的 ActiveState 分发链接到 HomeBrew 安装的 Python
【发布时间】:2017-04-02 15:24:17
【问题描述】:

我使用的是 macOS 10.12.1 Sierra。我正在使用安装的 Python 2.7.12

brew install python

但 IDLE 会发出警告

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.

果然,它经常崩溃。 8.5.9 为 macOS 预装版本。

我可以从ActiveState 网站下载稳定的 8.5.18(正如python 推荐的那样,它与 python.org 的 python 安装一起使用(因为他们在求助之前会寻找任何其他版本的 Tcl/Tk不稳定的macOS默认8.5.9)。

不过这次下载不影响brew安装的python IDLE,继续使用8.5.9。

我可以做些什么来将更新的 Tcl/Tk 与 Homebrew 链接,或者我可以直接使用 Homebrew 安装 Tcl/Tk?

我还注意到使用 anaconda python 时会出现完全相同的问题,它使用的是预装的 mac tcl/tk 8.5.9,而不是用户安装的 tcl/tk 8.5.18

【问题讨论】:

  • 好问题。很想知道答案。
  • 你可以尝试导入 tcl 并检查它的位置,强制 PYTHONPATH 指向新的 TCL 安装,无论使用什么命令。
  • 可能尝试other StackExchange sites 解决 Homebrew 和编码语言操作系统兼容性问题。
  • @JBallin,我不认为那是重复的。虽然他们的答案非常相似,但问题却大不相同,这个问题想要替换 Tcl/Tk 的默认安装,而“骗子”想知道为什么 tkinter 根本不工作。有这个问题的人似乎不太可能找到这个问题。不过我可能在这里错了。

标签: python macos tcl homebrew tk


【解决方案1】:

tcl-tk 可以通过 Homebrew 安装,并且可以将安装 Homebrew 的 python 链接到 tcl-tk 的那个版本(安装 Homebrew)。
唯一的“障碍”是启用正确的自制软件点击,因为在自制软件的“默认”点击中找不到tcl-tk
事实上,tcl-tk 可以在名为 homebrew-dupes 的水龙头中找到,其中包含(引用页面)

复制 macOS 提供的软件的公式,但可能提供更新的或修正错误的版本。

这里是 homebrew-dupes 的链接:
https://github.com/Homebrew/homebrew-dupes
这里是 tcl-tk 的公式
https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb

所以解决问题的完整方法是:

  1. 激活/安装 homebrew-dupes tap
  2. 安装 tcl-tk
  3. 使用 homebrew tcl-tk 安装 homebrew python

要执行的命令如下:

  1. brew tap homebrew/dupes
  2. brew install tcl-tk
  3. brew install python --with-tcl-tk

【讨论】:

  • 此解决方案有效。 IDLE 错误消失了,一切都很好——谢谢!
  • 选项 --with-tcl-tk 不再存在。我现在该怎么办?
  • homebrew/dupes 现在已弃用 - 上面指向 github 存储库的链接不再有效。尝试只运行brew install tcl-tk
【解决方案2】:

Homebrew 是一款出色的包管理器,建议在安装任何包时查看相关信息。

brew info python

显示了很多可以通过的选项;但最重要的是

--with-tcl-tk

使用 Homebrew 的 Tk 而不是 macOS Tk(具有可选的 Cocoa 和线程支持)

【讨论】:

  • 这个选项似乎出错了:Error: No formulae found in taps.
  • brew install python --with-tcl-tk
  • 运行brew doctor homebrew 安装似乎有问题
  • @Borealis 自制软件安装没有问题。错误似乎很明显。问题是没有启用正确的水龙头。试着看看我的答案,如果没有启用包含 tcl-tk 的水龙头,它应该会给出完整的配方。但我可能错了,因为我不在你的电脑里!
【解决方案3】:

我能想到几个乱七八糟的解决方案 -

1) 在路径开头插入安装模块的实际位置

import sys

sys.path.insert(1, 'YourTclLocation')

2) 追加新位置并删除以前的位置

import sys
sys.path.append('YourTCLLocation')
sys.path.remove('ProblemLocation')
import Tcl

3) 在 bash 中设置 PYTHONPATH 环境变量并确保它没有损坏的位置

【讨论】:

猜你喜欢
  • 2010-12-18
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多