我如何 link 将 Tcl/Tk 的 ActiveState 分发安装到 HomeBrew Python
How do I link the ActiveState distribution of Tcl/Tk to HomeBrew installed Python
我正在使用 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 website (as recommend by python 下载稳定的 8.5.18,它可以与 python.org 的 python 安装一起使用(因为他们寻找任何其他版本的 Tcl/Tk 在诉诸不稳定 macOS 默认 8.5.9 之前)。
然而,此下载不会影响安装的 brew python IDLE,它继续使用 8.5.9。
我可以用 Homebrew 对 link 更新的 Tcl/Tk 做些什么,或者我可以直接用 homebrew 安装 Tcl/Tk 吗?
我也注意到使用 anaconda python 时会出现完全相同的问题,它使用预装的 mac tcl/tk 8.5.9,而不是用户安装的 [=33] =] 8.5.18
我能想到几个乱七八糟的解决方案 -
1) 在路径开头插入已安装模块的实际位置
import sys
sys.path.insert(1, 'YourTclLocation')
2) 附加新位置并删除以前的位置
import sys
sys.path.append('YourTCLLocation')
sys.path.remove('ProblemLocation')
import Tcl
3) 在 bash 中设置 PYTHONPATH 环境变量并确保它没有损坏的位置
Homebrew 是一个优秀的包管理器,在安装任何包时,建议查看信息。
brew info python
显示了很多可以通过的选项;但最重要的是
--with-tcl-tk
使用 Homebrew 的 Tk 而不是 macOS Tk(具有可选的 Cocoa 和线程支持)
tcl-tk
可以通过 Homebrew 安装,也可以安装 Homebrew python linked 到 tcl-tk
.[=30 的那个版本(安装 Homebrew) =]
唯一的“障碍”是启用正确的自制程序 tap,因为 tcl-tk
在 "default" 在 Homebrew 中点击。
事实上 tcl-tk
是在名为 homebrew-dupes 的分路器中找到的,其中包含(引用页面)
formulae that duplicate software provided by macOS, though may provide more recent or bugfix versions.
这里是link到homebrew-dupes:
https://github.com/Homebrew/homebrew-dupes
这里是 tcl-tk
的公式
https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb
所以解决问题的完整方法是:
- Activate/Install homebrew-dupes 点击
- 安装tcl-tk
- 安装自制程序 python 使用自制程序 tcl-tk
要执行的命令如下:
brew tap homebrew/dupes
brew install tcl-tk
brew install python --with-tcl-tk
我正在使用 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 website (as recommend by python 下载稳定的 8.5.18,它可以与 python.org 的 python 安装一起使用(因为他们寻找任何其他版本的 Tcl/Tk 在诉诸不稳定 macOS 默认 8.5.9 之前)。
然而,此下载不会影响安装的 brew python IDLE,它继续使用 8.5.9。
我可以用 Homebrew 对 link 更新的 Tcl/Tk 做些什么,或者我可以直接用 homebrew 安装 Tcl/Tk 吗?
我也注意到使用 anaconda python 时会出现完全相同的问题,它使用预装的 mac tcl/tk 8.5.9,而不是用户安装的 [=33] =] 8.5.18
我能想到几个乱七八糟的解决方案 -
1) 在路径开头插入已安装模块的实际位置
import sys
sys.path.insert(1, 'YourTclLocation')
2) 附加新位置并删除以前的位置
import sys
sys.path.append('YourTCLLocation')
sys.path.remove('ProblemLocation')
import Tcl
3) 在 bash 中设置 PYTHONPATH 环境变量并确保它没有损坏的位置
Homebrew 是一个优秀的包管理器,在安装任何包时,建议查看信息。
brew info python
显示了很多可以通过的选项;但最重要的是
--with-tcl-tk
使用 Homebrew 的 Tk 而不是 macOS Tk(具有可选的 Cocoa 和线程支持)
tcl-tk
可以通过 Homebrew 安装,也可以安装 Homebrew python linked 到 tcl-tk
.[=30 的那个版本(安装 Homebrew) =]
唯一的“障碍”是启用正确的自制程序 tap,因为 tcl-tk
在 "default" 在 Homebrew 中点击。
事实上 tcl-tk
是在名为 homebrew-dupes 的分路器中找到的,其中包含(引用页面)
formulae that duplicate software provided by macOS, though may provide more recent or bugfix versions.
这里是link到homebrew-dupes:
https://github.com/Homebrew/homebrew-dupes
这里是 tcl-tk
的公式
https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb
所以解决问题的完整方法是:
- Activate/Install homebrew-dupes 点击
- 安装tcl-tk
- 安装自制程序 python 使用自制程序 tcl-tk
要执行的命令如下:
brew tap homebrew/dupes
brew install tcl-tk
brew install python --with-tcl-tk