最近需要將python代碼打包成exe,打包過程中出現了一些問題,特此記錄,也順便記錄下cx_Freeze使用方法,留待日后查看。
首先進行下載,需要注意對應的版本號,比如本人使用python3.4,64位,故下載cx_Freeze-4.3.3.win-amd64-py3.4.msi這個版本,下載后在python
安裝目錄下就可以看到cxfreeze,然后配置好環境變量就可以使用了,如圖:
cxfreeze
有兩種打包方式,一是cxfreeze script
,這種方式很簡單,只要打開cmd
,cd
到python
文件所在目錄,比如文件名為hello.py
,執行:
cxfreeze hello.py --target-dir dist
如果要生成可安裝包文件,就要用到這種打包方式,名為distutils setup script
,這種方式必須創建一個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
也可以自動生成setup.py
,如下:
接下來只要到python文件的目錄,運行
python setup.py bdist_msi
如果想更加詳細了解操作方法,可以查看官方文檔
官方操作文檔:查看
問題
可是我在使用cxfreeze hello.py --target-dir dist
后,發現生成的exe文件無法運行,總是一閃而過,心好累,一番谷歌,找到如下解決辦法:
1、去這個網站下載cx_Freeze(注意32/64位)
cx_Freeze?4.3.4?cp34?none?win64.whl
2、把擴展名whl,改為zip進行解壓
4、然后進入C:\Python34\Lib\site-packages
,請參考各自python安裝路徑,刪除cx_Freeze相關的包,我這里有兩個,全部都刪除掉
5、然后將cx_Freeze?4.3.4?cp34?none?win64
目錄下的文件夾全部復制到C:\Python34\Lib\site-packages
,如圖:
最后進行打包,cxfreeze hello.py --target-dir dist
,終于可以運行了,如果想打包成一個exe文件的話,可以將dist文件夾下面的文件全部創建自解壓文件,不會的看這里。
這樣就解決了,希望能有幫助。