最近需要將python代碼打包成exe貌笨,打包過(guò)程中出現(xiàn)了一些問(wèn)題咳促,特此記錄稚新,也順便記錄下cx_Freeze使用方法,留待日后查看跪腹。
首先進(jìn)行下載褂删,需要注意對(duì)應(yīng)的版本號(hào),比如本人使用python3.4冲茸,64位屯阀,故下載cx_Freeze-4.3.3.win-amd64-py3.4.msi這個(gè)版本,下載后在python
安裝目錄下就可以看到cxfreeze,然后配置好環(huán)境變量就可以使用了,如圖:
cxfreeze
有兩種打包方式轴术,一是cxfreeze script
,這種方式很簡(jiǎn)單难衰,只要打開(kāi)cmd
,cd
到python
文件所在目錄膳音,比如文件名為hello.py
,執(zhí)行:
cxfreeze hello.py --target-dir dist
如果要生成可安裝包文件召衔,就要用到這種打包方式,名為distutils setup script
祭陷,這種方式必須創(chuàng)建一個(gè)setup.py
文件,可以使用官方提供的:
import sysfrom cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
# GUI applications require a different base on Windows (the default is for a console application).
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup( name = "guifoo",
version = "0.1",
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [Executable("guifoo.py", base=base)]
)
或者在cmd
窗口輸入cxfreeze-quickstart
也可以自動(dòng)生成setup.py
趣席,如下:
接下來(lái)只要到python文件的目錄兵志,運(yùn)行
python setup.py bdist_msi
如果想更加詳細(xì)了解操作方法,可以查看官方文檔
官方操作文檔:查看
問(wèn)題
可是我在使用cxfreeze hello.py --target-dir dist
后宣肚,發(fā)現(xiàn)生成的exe文件無(wú)法運(yùn)行想罕,總是一閃而過(guò),心好累霉涨,一番谷歌按价,找到如下解決辦法:
1、去這個(gè)網(wǎng)站下載cx_Freeze(注意32/64位)
cx_Freeze?4.3.4?cp34?none?win64.whl
2笙瑟、把擴(kuò)展名whl楼镐,改為zip進(jìn)行解壓
4、然后進(jìn)入C:\Python34\Lib\site-packages
往枷,請(qǐng)參考各自python安裝路徑框产,刪除cx_Freeze相關(guān)的包凄杯,我這里有兩個(gè),全部都刪除掉
5秉宿、然后將cx_Freeze?4.3.4?cp34?none?win64
目錄下的文件夾全部復(fù)制到C:\Python34\Lib\site-packages
戒突,如圖:
最后進(jìn)行打包,cxfreeze hello.py --target-dir dist
,終于可以運(yùn)行了描睦,如果想打包成一個(gè)exe文件的話(huà)膊存,可以將dist文件夾下面的文件全部創(chuàng)建自解壓文件,不會(huì)的看這里忱叭。
這樣就解決了膝舅,希望能有幫助。