原文鏈接?
我經(jīng)常用python寫些腳本什么的钾腺,有時候腳本寫完以后瞻离,每次運行都得在IDE打開在運行,很麻煩力惯,所以經(jīng)常將python編譯成exe.SO...有了一點經(jīng)驗,在這和大家分享一下召嘶。
python 打包成exe 主要有兩種父晶,一種是py2exe,另一種便是pyInstaller弄跌,之前我是用py2exe的甲喝,但是我后來發(fā)現(xiàn)py2exe存在問題:1,打包好的 exe只能在相同的系統(tǒng)下運行铛只,比如你在XP系統(tǒng)用py2exe打包好的exe只能在XP上運行埠胖,在win7上肯定有問題,而且也是存在在別的XP機(jī)子上也可能不能運行淳玩,因為一些別的機(jī)子可能會缺少dll文件什么的直撤,作者我當(dāng)時之所以拋棄py2exe 也是因為這個原因;2蜕着,打包的文件也需要打包同exe下的dll谋竖,和一些庫的壓縮包红柱,不然exe根本跑不起來
所以作者強(qiáng)烈建議大家在python打包的話使用pyInstaller,在這我主要同大家分享pyInstaller的打包方法.
話不多說蓖乘,開始.....
pyInstaller是一款用于將pyhon程序打包成exe文件的工具锤悄,pyInstaller不是一個python的包, 只需要把pyInstaller的文件下載下來放到任意為止都可以嘉抒,也就是說pyInstaller相當(dāng)于獨立出來專門干打包python的工具零聚,這貨是工具不是庫,也不是包...
1.下載安裝pyinstaller些侍,下載網(wǎng)址:http://www.pyinstaller.org/去下載隶症,然后解壓到任意目錄.(注意:在pyinstaller2.0之前的版本要是移動這個文件夾的話,需要改一些配置娩梨,不然pyinstaller會因為你的移動不能使用.這個和后面的配置環(huán)境有關(guān).pyinstaller2.0的版本就沒有限制.)
2.編譯配置環(huán)境(以解壓到F:盤為例子)
①沿腰, pyinstaller-2.0的方法:
打開cmd cd進(jìn)入解壓后的目錄下的sorce下,即:cdF:\pyinstaller-2.0\source
運行 python ./waf configure build install
*(可能需要安裝pywin32.下載并安裝即可狈定,重新運行命令即可)
②颂龙,? pyinstaller-1.5
打開cmd cd進(jìn)入pyinstaller解壓目錄,cdF:\pyinstaller-1.5
運行?? python Configure.py
*(可能需要安裝pywin32.下載并安裝即可纽什,重新運行命令即可)
結(jié)果提示保存在config.dat文件中措嵌。其中config.dat文件存放在pyinstaller的根目錄。
3. 將自己寫的py程序打包exe
①芦缰, pyinstaller-2.0的方法:
將自己寫的py文件(HelloWorld.py)拷貝到pyinstaller解壓目錄下企巢,
打開cmd cd進(jìn)入解壓后的目錄下,即:cdF:\pyinstaller-2.0\
運行命令 python pyinstaller.py [opts] yourprogram.py
在此處則是運行:
在目錄下會生成一個helloworld的文件夾让蕾,里面存放 HelloWorld.spec文件浪规,;兩個文件夾(dist探孝,buildi)笋婿,可以運行的exe則放在/dist/yourprogram下
②,? pyinstaller-1.5
將自己寫的py文件(HelloWorld.py)拷貝到pyinstaller解壓目錄下顿颅,
打開cmd cd進(jìn)入解壓后的目錄下缸濒,即:cdF:\pyinstaller-1.5\
pyinstaller-1.5和 pyinstaller-2.0 的區(qū)別來了。
在 pyinstaller-1.5 中你先需要生成spec文件粱腻,然后通過spec文件在生成exe文件庇配,而 pyinstaller-2.0 在執(zhí)行命令(請看上面)后會同時吧exe和spec文件都生成出來了
所以在 pyinstaller-1.5 你得先生成spec文件:
python Makespec.py? [opts] yourprogram.py
運行命令: python Makespec.py? [opts] HelloWorld.py
此時在此目錄下生成的 HelloWorld文件夾,文件夾下有一個 HelloWorld.spec文件绍些,將文件在拷貝到目錄(F:\pyinstaller-1.5\)下
運行命令: python Build.py HelloWorld.spec
4.你會發(fā)現(xiàn)按照上面的方法在/yourprogram/dist/yourprogram下除了需要的exe文件捞慌,也存在很多dll文件,然后你會開始抱怨作者我坑爹了吧....
哈哈遇革,如果你這么發(fā)現(xiàn)了卿闹,說明揭糕,你已經(jīng)完成用最基礎(chǔ)的pyinstaller打包了萝快,關(guān)于如何pyinstaller請往下看:
不管是pyinstaller-1.5還是pyinstaller-2.0锻霎,要想打包成一個文件,或者將文件的圖標(biāo)修改等等操作揪漩,這些都與你在運行命令時有關(guān)系旋恼,還記得命令是什么嗎?
pyinstaller-2.0 是:
python pyinstaller.py [opts] yourprogram.py
pyinstaller-1.5 是:
python Makespec.py? [opts] yourprogram.py
那些打包成一個文件奄容,或者將文件的圖標(biāo)修改等等操作都和這個 [opts] 有關(guān)系.
下面舉些例子(客官一看便知冰更,以 pyinstaller-2.0為例子,1.5通用):
①昂勒, 打包成一個文件:
python pyinstaller.py --onefile? yourprogram.py
②蜀细,修改exe的圖標(biāo)(D:\BabyWandH\src\faviconw.ico為圖標(biāo)的存放路徑):
python pyinstaller.py --onefile? --icon=D:\BabyWandH\src\faviconw.ico?? yourprogram.py
[opts]的一些說明(具體可以看pyinstaller官網(wǎng)http://www.pyinstaller.org/expor ... talling-pyinstaller):