這里說明下為什么使用cx-frezze來進行打包任務(wù)澜汤,因為我用的是python3.5炎滞,只有cx-frezze
可以實現(xiàn)打包python3以上的程序敢艰。
首先需要為python安裝cx-frezze模塊,可以直接使用pip install
進行安裝册赛,或者在這個網(wǎng)站下載:http://www.lfd.uci.edu/~gohlke/pythonlibs/
在上面選擇對應(yīng)你python版本下載就行,下載完成后在windows的cmd模式下進入下載目錄,然后pip install 對應(yīng)的文件名安裝就行赤赊。
第二部吵血,創(chuàng)建一個python(取名cxsetup.py)文件,然后復制以下內(nèi)容進入文件:
#coding=utf-8
#cxsetup.py代碼
from cx_Freeze import setup, Executable
setup(
name="video_server",
version="1.0",
description="video_server",
author="LCC",
executables=[Executable("video_server.py",targetName
='video_server.exe',icon = "video_server..ico")]
)
上面代碼中扼睬,name是工程名字逮栅,version是版本號,description是描述窗宇,author是作者措伐,這些內(nèi)容都可以隨便填,下面的executables按照實際填寫军俊,第一個是你的python文件名侥加,targetname是你生成的exe文件的名字,icon是exe圖標粪躬,所有文件都放在這個py文件同一個目錄下官硝,不然會出錯。
完成之后打開CMD模式短蜕,進入py文件的所在目錄氢架,輸入python cxsetup.py build然后運行,就會在終端打印一堆東西朋魔,等打印完岖研,你就會發(fā)現(xiàn)py文件所在目錄下出現(xiàn)了一個build文件,你的exe程序就在這個文件里面,你打開之后雙擊就可以運行了
cx-freeze有一個BUG孙援,就是無法識別 if name == "main"語句害淤,當你的程序里面有這個語句生成的EXE是無法正常運行的
在打包exe程序之前一定要去掉if name == "main" 語句!M厥邸?恪!4∮佟U阜拧!
在打包exe程序之前一定要去掉if** name** == "main" 語句8胄住1疑啊!2=摹>龃荨!凑兰!
在打包exe程序之前一定要去掉if** name** == "main" 語句U谱!9檬场2ǖ骸!J该拧盆色!重要的事情說三遍,就這玩意搞了我一早上來檢查代碼不停重裝祟剔,后來查百度才發(fā)現(xiàn)是cxfreeze的一個BUG8舳恪!N镅印P怠!E咽怼;胍鳌!:牧铩W榱Α!6端A亲帧P冉贰!:蜓堋A搿!r嚷埂1蹩场!Q臁M锵贰!K婀搿H沾āB>乩帧!;芈邸I⒑薄!?亍E肥!T崃恰N笊酢!