我安装了TkTreeCtrl 2.4.1(用c编写),以及包装原始c库的TkTreectrl 1.0(用python编写)。
当我尝试在Python中创建任何treectrl对象时,我收到错误:
_tkinter.TclError: can't find package treectrl
我对Python很陌生,但我猜想Python包装器代码找不到c库。
当我安装TkTreeCtrl(c)时,它将自己作为.dylib文件安装在'/usr/lib/treectrl2.4.1'中。
我之前从未使用过.dylib,但有些谷歌搜索告诉我将它所在的目录添加到环境变量'DYLD_LIBRARY_PATH'。
我做到了,但没有运气。我不确定我甚至不知道我的问题是什么,所以任何帮助都会非常感激!
我正在运行Lion和Python 2.7。 Python是使用MacPorts安装的。
答案 0 :(得分:1)
对于其Python端口,MacPorts目前构建并安装自己的基于X11的Tcl和Tk端口。在构建TkTreeCtrl时,您需要注意为MacPorts提供的Tcl,Tk和X11库以及包含文件的./configure
指定正确的位置。有关选项的名称,请参阅./configure --help
。您应该在/opt/local/
下找到库和包含文件,这是MacPorts文件的默认安装位置。
但是,可能有一个更容易的选择。似乎Tcl / Tk的ActiveTcl分布包括TkTreeCtrl。如果您使用与ActiveTcl链接的Python,您只需要安装Python TkTreectrl模块,这很简单。在Lion上,可以免费(但不是开源)下载ActiveTcl 8.5 here,它将自动与用于OS X的python.org 2.7.2 64位安装程序here一起使用。 ActiveState也有自己的OS X的Python发行版。有关OS X here上Python和Tcl / Tk的一些怪癖的更多信息。请注意,ActiveTcl是OS X上更原生的实现;它不是基于X11的。