2011-12-27 25 views
0

我已經在此花了數小時。好像我們在Linux上的工作就是調試在分散的發行版中無效的腳本,而不是完成工作。安裝在Suse Linux Server 11.3上的Python 2.7.2找不到tkinter依賴關係

Setup.py會嘗試找到它所需的內容,並構建用於包裝某些依賴項的c模塊(如果它能找到所需的)。這使得腳本相對於路徑和文件名而言非常脆弱。

儘管從.py源代碼很難說清楚,但tkinter似乎需要tcl,tk和tix。這些的最新版本都已安裝。我可以驗證這一點,因爲SUSE發行版中包含Python 2.6,它提供imports_tkinter和Tkinter模塊,並正確運行測試腳本。

腳本似乎需要找到庫。我有32位和64位安裝。因此,這些庫存在: 32位64位 libtk8.5.so/usr/lib目錄的/ usr/lib64下 libtcl8.5.so 「」

兩個路徑都包含在Setup.py相應的搜索列表。但是,我不認爲Setup.py搜索正確的文件名。它似乎搜索以tk和tcl開頭的文件,連接各種不同的版本(包括'8.5')。但是,文件名不以'lib'開頭。在我開始篡改更多之前,Python.org的人們是否真的搞砸了這麼糟糕?這似乎不太可能。 SUSE Linux是如此奇怪的發行版嗎?這似乎也不可能。

我不認爲setup.py會尋找二進制文件(在運行時看起來很重要),但它們存在於usr/lib和usr/lib64中。

我能找到的唯一包含文件是tclextend。它是在usr/include中找到的tclextend.h。我找不到tcl或tk的其他.h文件。當然Python C包裝需要的包含文件隨Python 2.7的下載提供。

所以,我在我的智慧的結尾。這是如此巨大的時間浪費。有沒有一種方法可以跳過構建過程並構建tcl/tk支持?我也有與ssl相同的問題:它不會建立。一心一意。

感謝您的幫助。

+0

我想也許是Tcl的-devel包,並沒有安裝,但我認爲他們是。我有所有devel包的完整目錄。我會下載並安裝它們,看看是否解決了這個問題。 – 2011-12-28 03:11:23

回答

0

我發現許多rpm套件的分發點。這使我能夠安裝單獨的包,例如tcl的頭文件。但是,這是一個糟糕的方法,因爲完整的依賴關係層次結構爲tkinter構建Python支持約爲60個包。

我發現操作系統版本11.3的OpenSuSE存儲庫包含我需要的所有東西。我的Novell發行版帶有Novell的存儲庫,它幾乎不包括所有的開發包。

問題解決。 python的製作發現了tkinter的所有先決條件。

對不起,發佈這樣一個nube問題。