在OSX上安装TkTreectrl

1 投票
1 回答
960 浏览
提问于 2025-04-17 06:33

我安装了TkTreeCtrl 2.4.1(用C语言写的),还有TkTreectrl 1.0(用Python写的,它是对原始C库的封装)。

当我尝试在Python中创建任何treectrl对象时,出现了错误:

_tkinter.TclError: can't find package treectrl

我对Python还很陌生,但我猜测Python的封装代码找不到C库。

当我安装TkTreeCtrl(C版)时,它被安装在'/usr/lib/treectrl2.4.1'目录下,文件类型是.dylib。

我以前从没用过.dylib文件,但我在网上查了一下,发现需要把它所在的目录添加到环境变量'DYLD_LIBRARY_PATH'中。

我照做了,但还是不行。我甚至不太确定我的问题是什么,所以任何帮助都会非常感激!

我在使用Lion系统和Python 2.7,Python是通过MacPorts安装的。

1 个回答

1

对于MacPorts的Python版本,目前它会自己构建和安装基于X11的Tcl和Tk。这意味着在构建TkTreeCtrl的时候,你需要小心,确保在./configure时指定正确的路径,指向MacPorts提供的Tcl、Tk和X11的库和包含文件。你可以通过查看./configure --help来找到这些选项的名称。通常,这些库和包含文件会在/opt/local/这个默认的MacPorts安装位置下找到。

不过,可能还有更简单的选择。看起来ActiveTcl的Tcl/Tk版本中已经包含了TkTreeCtrl。如果你使用的是与ActiveTcl连接的Python,那么你只需要安装Python的TkTreectrl模块,这个过程很简单。在Lion系统上,可以在这里免费下载ActiveTcl 8.5(虽然不是开源的),它会自动与python.org提供的2.7.2 64位OS X安装包一起使用,下载地址在这里。ActiveState也有自己为OS X提供的Python版本。关于Python和Tcl/Tk在OS X上的一些特殊情况,可以在这里找到更多信息。需要注意的是,ActiveTcl在OS X上是更本地化的实现,不是基于X11的。

撰写回答