[问题] CentOS下python runtimeError

楼主: savageg (陈Eason超棒)   2016-08-30 12:33:11
昨天搞了一整天都没法解决
我和朋友写的一个程式,是在Fedora 23上面开发的,使用起来也都没问题
因为要相容在CentOS5上面,真的搞了很久,一堆dependency要处理
现在终于编译完,剩下runtime出现问题
RuntimeError: tcl.h version (8.5) doesn't match libtcl.a version (8.4)
(为了让CentOS5的Tcl环境和Fedora 23一样,我就装了Tcl 8.5.19
并且把所有 tclsh / libtcl.so link到8.5的档案)
我用find指令找了整个硬盘,都没有看到libtcl.a这个档
后来才发现在python2.7/lib-tk/Tkinter.py里面libtcl.a是写死的
并不一定有这个档案,但他主要的意思是系统的tcl和TkInter版本不同
程式码里面是这样检查的
tcl_version = str(self.tk.getvar('tcl_version'))
if tcl_version != tkinter.TCL_VERSION:
raise RuntimeError, \
"tcl.h version (%s) doesn't match libtcl.a version (%s)" \
% (_tkinter.TCL_VERSION, tcl_version)
因此由程式码和吐到shell的error msg比对可看出
tkinter 的版本是 8.5
self.tk.getvar拿到的版本是 8.4
想要请有经验的版友帮我解答一下,那个8.4是从系统哪个档案读到的呢?
因为我昨天编完Tcl 8.5后很确定有把/usr/lib /usr/bin /usr/local/lib /usr/local/bin
有关于tcl的档案都link到8.5了,而且python 也有重新编译过
到底是哪里出了问题 orz
作者: WusoAiwen (Wuso)   2016-08-31 05:55:00
指定TCLLIBRARY环境变量到你的TCL路径看看应该是TCL_LIBRARY

Links booklink

Contact Us: admin [ a t ] ucptt.com