專案上做乙個小工具,通過webservice介面實現配置下發。python檔案除錯通過了,想把它抓換成exe,網上查了下,得知有py2exe這個好用精簡的小工具,本以為分分鐘搞定的事情,結果經歷了九轉十八彎。在此把遇到的坑和填坑的手段一一記錄一下,希望不要忘記。
py2exe官網上提供了乙個特別精簡的例子,setup.py中僅那麼幾行**:
from distutils.core import setup
import py2exe
setup(console=["helloworld.py"])
其中helloworld.py是待轉換的python檔案。實際上setup的函式選項遠不止乙個console,且這種最精簡的寫法無法滿足更高階的需要,例如有第三方庫,例如py檔案中甚至音訊檔案鏈結等等。更多的應用要去查官方文件,這裡本人唯一要使用到的是第三方庫。
#coding=utf8
from distutils.core import
setup
import
py2exe
extra_modules = ["
bs4"
]options =
}setup(
version = "
1.0.0",
description = "
test for py2exe",
name = "
py2exetest",
options =options,
zipfile =none,
console =
)
其中幾個重要的引數:
zipfile = none預設py2exe會生成乙個library.zip的庫檔案;此處為none,則不生成改檔案,把它打包到exe檔案。對於該選項,本人嘗試編卻一直編不過,報configparser的錯誤,網上也沒找到解決辦法,最後看到有人說打包編可能存在失敗概率,反正也不要求這個,就把打包的相關選項都去掉了。一試編過了。
"packages": extra_modules指定依賴的其它模組。在我使用過程中,實際上packages和includes選項都需要,缺乙個就報configparser錯誤,此處我用到的suds和paramiko,因此extra_modules寫了兩個庫
"bundle_files": 1表示要把所有檔案打包成乙個 exe可執行程式
幾經波折後,setup,py檔案**如下:
#coding=utf8
from distutils.core import
setup
import
py2exe
extra_modules = ["
suds
","paramiko"]
options =
}setup(
version = "
1.0.0",
description = "
test for py2exe",
name = "
py2exetest",
options =options,
console =
)
以為到這就完了,編的時候還是報了各種錯,其中最主要的是找不到庫的錯,如
"no module named paramiko"
"no module named ecdsa"
吧啦吧啦
又是去求助萬能的網際網路,網上說py2exe不支援egg模組的包,解決辦法是把報錯的庫的包(python安裝路徑,一般是c:\python27\lib\site-packages)的egg檔案中,同名的資料夾解壓出來,放入python庫中(c:\python27\lib\site-packages)。有些拗口,就這麼個意思,最後問題解決,在dist下出現了想要的exe檔案,執行正常。
py檔案轉換成exe格式
本人寫好的py再給別人使用的時候,往往都需要再在別人的電腦上配置一遍環境,感覺超級麻煩,所以找到了pyinstaller這個工具,可以幫助我直接生成exe檔案,當然也幫我做好了庫環境的包含工作,簡單方便,在此記錄。pip install pyinstaller在命令列中進入所需打包的目錄 打包指令 ...
Python中py檔案轉換成exe可執行檔案的方法
一 背景 今天閒著無事,寫了乙個小小的python指令碼程式,然後給同學炫耀的時候,發現每次都得拉著其他人過來看著自己的電腦螢幕,感覺不是很爽,然後我想著網上肯定有關於python腳程式設計客棧本轉換成可執行檔案的操作,事不宜遲,我就開始了問度娘,各種尋找資料,發現網上的資料太多了,有一些比較老了,...
如何將py檔案轉換成exe檔案
本篇部落格是本人寫的第一篇部落格,用於記錄在工作上實操過的練習,都是經過實際操練執行得出來的 操作步驟 win r開啟執行視窗,輸入 cmd,在cmd視窗中輸入pip install pyinstaller 等待計算機安裝 安裝庫的時候沒有想到要寫部落格記錄,所以並未截圖,安裝時,會出現安裝的進度條...