使用no-X11 tkinter和python(通过macports安装)

时间:2012-04-06 15:30:37

标签: python macos tkinter macports

我安装了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“?

提前致谢!

3 个答案:

答案 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 启用石英变体

关于变体的更多信息:https://guide.macports.org/#using.variants

答案 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。