2011-11-18 115 views
1

我安裝了TkTreeCtrl 2.4.1(用c寫成)以及TkTreectrl 1.0(用python編寫),它包裝了原來的c庫。在OSX上安裝TkTreectrl

當我嘗試在Python中創建任何TREECTRL對象,我得到的錯誤:

_tkinter.TclError: can't find package treectrl 

我是很新,Python,但我猜想,Python的包裝代碼找不到c庫。

當我安裝TkTreeCtrl(c)時,它將自己安裝在'/usr/lib/treectrl2.4.1'中作爲.dylib文件。

我從來沒有使用過.dylib,但是一些Google使用者告訴我將它所在的目錄添加到環境變量'DYLD_LIBRARY_PATH'中。

我做到了,但沒有運氣。我不知道我甚至知道我的問題是什麼,所以任何幫助將不勝感激!

我正在運行Lion和Python 2.7。 Python是使用MacPorts安裝的。

+0

哪個版本的OS X?哪位Python解釋器? –

+0

我加了我的詳細資料。出於好奇,當問題被編輯時,評論者是否會收到通知? – Dean

+0

(我不這麼認爲,但添加新評論時會收到通知。)您確定使用過(安裝)並且正在使用MacPorts Python 2.7而不是Apple提供的Python 2.7嗎?後者位於'/ usr/bin/python2.7',默認情況下是'/ usr/bin/python';前者在'/ opt/local/bin/python2.7'上。根據你如何設置你的shell PATH環境變量以及你是否使用了MacPorts'port select python'命令,普通的'python'命令可能會讓你(或其他)。另外,在'/ usr/lib'中安裝並不好。這是一個由OS X管理的目錄。 –

回答

1

對於它的Python端口,MacPorts目前建立並安裝了它自己的基於X11的Tcl和Tk端口。看起來您在構建TkTreeCtrl時需要小心,以便爲提供Tcl,Tk和X11庫和包含文件的MacPorts指定./configure的正確位置。有關選項的名稱,請參見./configure --help。您應該找到/opt/local/(MacPorts文件的默認安裝位置)下的庫和包含文件。

雖然可能有更簡單的選擇。看來Tcl/Tk的ActiveTcl分佈包含TkTreeCtrl。如果您使用與ActiveTcl鏈接的Python,則只需安裝Python TkTreectrl模塊,這很簡單。在Lion上,ActiveTcl 8.5的免費下載(雖然不是開放源代碼)可用here,它將自動與python.org 2.7.2 64位安裝程序OS OS here一起使用。 ActiveState還擁有自己的OS X版Python發行版。關於OS X here上Python和Tcl/Tk的一些怪癖的更多信息。請注意,ActiveTcl在OS X上是更原生的實現;它不是基於X11的。

+0

謝謝!我得到它使用ActiveTcl的工作,但要做到這一點,我必須從MacPorts python切換。除了'sudo port select python python27-apple'由於某種原因仍然指向我的MacPorts版本之外,這不會有什麼大不了的。爲了讓它使用其他python,我改變了我的路徑,以便MacPorts在其他所有事情之後到來,這從長遠來看並不好。 – Dean