然而每次執行py2exe包裝總得花上許多時間,如果能將時常變動的程式包裝成獨立的python檔案,並且在每次修改後都能直接加入包裝內,便可減少頻繁修改後的再次包裝,甚至此經常修改的部分可以讓使用者自行修改,以滿足實際需求。
py2exe包裝後,將python檔案放入library.zip內,可以在此找到原先的模組結構。雖然它將python文字檔編譯成pyc檔,但仍然可以將原先的文字檔放入並刪除pyc檔,這時候便會執行放入的文字檔。
但在library.zip的文字檔無法直接打開修改。此外,跟著原先的模組取代,對使用者而言似乎不是這麼直覺,如果能在一個單純的資料夾下的固定檔案放置檔案,應該可以更容易使用。
如果將文字檔直接擺在library.zip之外的地方,會遇到無法找到模組的錯誤。這是因為py2exe包裝之後,sys.path內僅看得到"library.zip"。加入模組路徑之後即可解決。以下是簡單的程式碼示意,將根目錄加入sys.path。
import sys
# dist mode
if len(sys.path)==1:
path = sys.path[0]
distDir = "library.zip"
index = -1*len(distDir)
if path[index:] == distDir:
rootPath = path[:index]
sys.path.append(rootPath)
沒有留言:
張貼留言