2015-06-30 51 views
0

我有一個程序,包含一個主腳本爲.py和一些自定義模塊爲.pyd。所有文件都在同一個目錄中。主腳本使用import module語法導入模塊,並從我的IDE中一切正常。但是,當我cx凍結程序,我得到錯誤dynamic module does not define init functionPython cx-freeze ImportError:動態模塊沒有定義init函數

enter image description here

什麼是雙奇怪的是,quavers模塊是第二進口,所以第一個工作,但那麼這一個突破。內容方面兩者之間沒有太大的區別(每個方面只有幾個功能)。我之前也用自定義的pyd模塊創建了凍結程序,之前從未遇到過這個問題。

什麼是init函數,爲什麼cx-freeze需要它?它有什麼作用?我需要在每個導入的模塊中創建一個init函數嗎?

回答

1

我想通了這個問題。我有兩個版本的相同模塊,quavers1quavers2。我首先使用nuitka將它們編譯爲pyd,然後在cx-freeze它們時將創建的pyd文件從quavers1更名爲quavers。重命名後的nuitka彙編是造成這個問題的原因。如果我重命名,在nuitka編譯,然後凍結,它工作正常。

相關問題