将Tcl/Tk与Python 2.5链接
我有一个已经在用的Python 2.4版本,它和tkinter配合得很好,我用以下代码测试过:
python
import _tkinter
import Tkinter
Tkinter._test()
现在,我安装了Python 2.5.2,但当我用这个新版本做同样的测试时,它返回了一个错误(不过之前的版本测试是没问题的):
ImportError: No module named _tkinter
我知道我的电脑上已经安装了tcl8.5和tk8.5,因为我用以下命令查找它们的位置,结果如下:
whereis tcl
tcl: /usr/lib/tcl8.4 /usr/local/lib/tcl8.5 /usr/local/lib/tcl8.4 /usr/share/tcl8.4
whereis tk
tk: /usr/lib/tk8.4 /usr/local/lib/tk8.5 /usr/share/tk8.4
有没有什么办法可以让我的新Python版本和tkinter一起工作呢?
相关问题:
1 个回答
你找到的文件是用来直接链接到 tcl/tk 的。Python 还依赖另一个库:_tkinter.so。这个文件应该在 /usr/lib/python2.5/lib-dynload/_tkinter.so 这个位置。
你是怎么安装 python2.5 的?如果你使用的是 Debian 或 Ubuntu 系统,你需要安装 python-tk 这个包,才能支持 Tkinter。
如果 _tkinter.so 文件在那儿,但你的环境可能会导致一些问题。
如果你运行下面的命令:
python -E -c "import Tkinter;Tkinter._test()"
能成功,但如果运行下面的命令:
python -c "import Tkinter;Tkinter._test()"
失败了,那问题就出在你的环境设置上。检查一下 PYTHONPATH 的值是否设置正确。