我安装了Python 2.7和一些有用的库(比如Python Image Library) 通过MacPorts。一切都很好。
现在,我想使用Tkinter。 问题是该版本使用X11(我不想使用X11)。
如果我切换到Apple安装的python(/ usr / bin / python而不是 / opt / local / bin / python),Tkinter可以(不需要X11)但是 当然,我错过了通过MacPorts安装的各种库。
我的问题是:“如何在安装了Python 2.7的情况下使用no X11 Tkinter 通过MacPorts“?
提前致谢!
答案 0 :(得分:1)
这是一个已知问题,您可以查看此页面以进行编辑 https://www.python.org/download/mac/tcltk
答案 1 :(得分:1)
tkinter 端口依赖于 tk
,但 tk 端口默认使用 x11 变体。通过安装石英变体来解决。 (先删除tkinter和tk端口,然后使用下面的命令安装tk石英变体,然后再次安装tkinter)
sudo port install tk -x11 +quartz
-x11
禁用默认的 x11 变体+quartz
启用石英变体答案 2 :(得分:0)
OS X不再附带Quartz。
MacPorts不发布Cocoa tkinter版本。即使是最新的py36-tkinter也取决于tk which depends on quartz or x11。
来自Python Tkinter页面(https://www.python.org/download/mac/tcltk):
Python如何选择使用哪个Tk库
用于Python 3.6.x,3.5.x和2.7.x的64位/ 32位Mac OS X安装程序动态链接到Tcl / Tk 8.5框架。
Mac OS X的仅32位Python安装程序动态链接到Tcl / Tk 8.4框架。
[...]动态链接器首先在/ Library / Frameworks中查找Tcl和Tk框架[...]然后在/ System / Library / Frameworks [...]
根据我的测试,这不是MacPorts的行为。蟒。
所以我的解决方案是从python.org安装Python。