2009-06-29 33 views
4

我已經編寫了一個使用Tkinter的Python腳本。我想在Mac OS 10.4.11上的少數計算機上部署該腳本。但是,構建MAC OS X似乎破壞了TCL/TK安裝。即使裝載包給我:如何指導tkinter在其他地方尋找Tcl/Tk庫(以避免破壞庫而不重新安裝)

Traceback (most recent call last): 
File "<stdin>", line 1, in ? 
ImportError: dlopen(/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-dynload/_tkinter.so 2): Symbol not found: _tclStubsPtr 
Referenced from: /System/Library/Frameworks/Tk.framework/Versions/8.4/Tk 
Expected in: /System/Library/Frameworks/Tcl.framework/Versions/8.4/Tcl 

重新安裝TCL/TK是不是一種選擇,因爲我們是在一個辦公室,我們不得不讓IT來的每臺計算機,這將阻止人們使用劇本。

有什麼簡單的方法可以指導Tkinter尋找TK/TCL框架的其他地方嗎?我已經下載的Tcl/Tk Aqua一個獨立的版本,但我不知道如何來控制框架Tkinter的使用...

感謝您的幫助。

亞當

回答

1

您可以更改您的系統查找動態/共享庫,推出的Python之前在您的環境改變DYLD_LIBRARY_PATH。您可以在終端像這樣做:

$ DYLD_LIBRARY_PATH=<insert path here>:$DYLD_LIBRARY_PATH python 

...或者創建一個包裝:

#!/bin/sh 
export DYLD_LIBRARY_PATH=<insert path here>:$DYLD_LIBRARY_PATH 
exec python "[email protected]" 

DYLD_LIBRARY_PATH的文檔可以在dyld man page找到。

不是在您的.bashrc或任何其他配置文件或系統範圍內設置此項,因爲它有可能導致一些討厭的問題。

+0

這有助於Python中找到庫,但現在看來,Tkinter的不知道到哪裏尋找新的文件。現在,我得到一個錯誤,告訴我,Tkinter的「無法找到在以下目錄中可用init.tcl中」,然後列出了所有的標準Python庫目錄(而不是我把DYLD_LIBRARY_PATH路徑)。 有沒有人碰巧知道如何改變Tkinter的搜索路徑? 非常感謝您的幫助! – Tim 2009-07-06 13:57:55