2009-11-15 107 views
2

我正在發佈一個使用Python/C API的應用程序。我有python31.zip中的所有標準python模塊,它基本上是python安裝目錄中Lib文件夾的存檔。這是問題 - 像sys和io這樣的最常見模塊工作正常。但tkinter沒有。我收到一個錯誤「無法找到模塊_tkinter」。我真的需要在我的項目中使用tkinter。如果有幫助,我正在使用Windows。如何捆綁tkinter?

回答

1

我不是將tkinter與您的應用捆綁在一起的最佳方式,但我確實知道爲什麼會出現錯誤。 zipimport模塊文檔的相關章節:

ZIP存檔中可能存在任何文件,但只有文件.py和.py [co]可用於導入。動態模塊(.pyd,.so)的ZIP導入是不允許的。請注意,如果存檔文件僅包含.py文件,則Python不會嘗試通過添加相應的.pyc或.pyo文件來修改存檔文件,這意味着如果ZIP存檔文件不包含.pyc文件,則導入可能會很慢。

模塊_tkinter是一個C擴展/共享庫。它不能從zip文件導入。

+0

啊。這解釋了一些事情。什麼dll/pyd文件負責tkinter? –

1

爲什麼不使用py2exe將應用程序捆綁爲可執行文件?它應該照顧所有的依賴關係,並將包括你需要的任何東西。

+0

因爲該應用程序不是基於python的。它基於C++並使用python來添加腳本支持。 –