看板 Python 關於我們 聯絡資訊
昨天搞了一整天都沒法解決 我和朋友寫的一個程式,是在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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 96.55.76.82 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1472531594.A.C79.html
WusoAiwen: 指定TCLLIBRARY環境變數到你的TCL路徑看看 08/31 05:55
WusoAiwen: 應該是TCL_LIBRARY 08/31 05:59