0

我刚刚从pipOSX 10.8.2 安装了最新版本的 NLTK (2.0.4)。这个版本的 os OSX 不附带 X11,我喜欢这样,我不想安装它。但是,当我尝试在 python (2.7.2) 中导入时nltk,会弹出一个 OSX 对话框,说我需要安装 X11??

这可能是由于TkinterNLTK 下载器(或类似的东西),并且可能只是在某处设置一些配置选项以不依赖于 X11,我只是不知道在哪里设置该选项。

有一个错误报告指出nltk-0.9.5依赖tk项是必需的,并且nltk无法在没有 gui 库的服务器上运行,但该问题很久以前已被标记为已解决。

请注意,我并没有尝试运行nltk下载器或其他任何需要任何形式的 gui 的东西,我只是import nltk在对话框弹出时尝试运行。

NLTK安装文档没有给出任何需要 X11 的指示。

那么如何nltk在没有 X11 的情况下在 OSX 10.8 上运行呢?

4

1 回答 1

1

事实证明,问题确实是Tkinter。我使用的是 64 位 Mac 版本的 EPDPython,出于某种原因,他们决定将 Tk/Tcl 链接到 X11 而不是 aqua 或 cocoa。

然而,OsX 10.8 预装了正确版本的 Tk/Tcl,并且默认的 python 安装/usr/bin/python.2.7可以开箱即用,因为它使用正确的Tkinter. 解决方案是从 EPD 安装中删除错误的库,然后它会退回到正确的系统库。

要尝试建议的修复程序是否有效,请运行系统 python

$ /usr/bin/python2.7
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from Tkinter import *
>>>

这应该没有问题完成(没有对话框),如果你的系统 python 很好,删除这些

/Library/Frameworks/EPD64.framework/Versions/7.2/lib/libtcl8.5.dylib
/Library/Frameworks/EPD64.framework/Versions/7.2/lib/libtk8.5.dylib
/Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/lib-dynload/_tkinter.so

并且python应该依靠系统中的

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_tkinter.so
于 2012-11-15T12:22:54.350 回答