4

我编写了一个使用 Tkinter 的 Python 脚本。我想将该脚本部署在少数 Mac OS 10.4.11 上的计算机上。但是 MAC OS X 的那个版本似乎有一个损坏的 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 使用的框架......

谢谢您的帮助。

亚当

4

1 回答 1

1

DYLD_LIBRARY_PATH您可以通过在启动 Python 之前更改环境来更改系统查找动态/共享库的位置。您可以像这样在终端中执行此操作:

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

...或创建一个包装器:

#!/bin/sh
export DYLD_LIBRARY_PATH=<insert path here>:$DYLD_LIBRARY_PATH
exec python "$@"

DYLD_LIBRARY_PATH可以在dyld手册页上找到文档。

不要.bashrc或任何其他配置文件或系统范围的设置中设置它,因为它有可能导致一些令人讨厌的问题。

于 2009-07-03T23:21:24.800 回答