dist文件夾下無(wú)exe 既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。盡管FORTRAN和COB
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。
它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。
盡管FORTRAN和COBOL比C語(yǔ)言出現(xiàn)得早,但現(xiàn)代主流操作系統(tǒng)(windows、Mac OS、Linux、IOS、Android、Unix)都是從C語(yǔ)言中誕生的。
最根本的原因是C語(yǔ)言被設(shè)計(jì)用來(lái)同時(shí)編寫匯編語(yǔ)言。從理論上講,它可以用外匯來(lái)表示。匯編語(yǔ)言是最有效的語(yǔ)言。
所以Python是用C語(yǔ)言編寫的也就不足為奇了。它與能否生成exe無(wú)關(guān)。
Exe文件是Windows平臺(tái)的專用格式。最簡(jiǎn)單的exe是com可執(zhí)行文件。EXE文件實(shí)際上由引導(dǎo)加載程序和解釋器組成。
由Python語(yǔ)言生成的代碼只能通過(guò)引導(dǎo)加載程序和解釋器作為EXE文件執(zhí)行。
因此Python生成EXE文件并不困難。只是它是否愿意提供的問(wèn)題。
pyinstaller打包py生成的exe文件運(yùn)行出現(xiàn)錯(cuò)誤如何解決?
仔細(xì)查找代碼,重新打包調(diào)試,確定問(wèn)題是否出在pyGame的字體設(shè)置代碼中:
因?yàn)镋XE打包運(yùn)行成功后,系統(tǒng)無(wú)法匹配相應(yīng)的字體資源,因此會(huì)給出錯(cuò)誤提示并停止運(yùn)行。
其次,pyinstaller不會(huì)為您打包pyGame所需的多媒體資源,這需要您手動(dòng)添加。
解決字體資源問(wèn)題的方法是替換以下代碼:
這樣系統(tǒng)可以調(diào)用現(xiàn)有字體,然后重新打包,然后將pyGame所需的媒體資源文件與EXE文件存儲(chǔ)在同一目錄下,EXE可以正常運(yùn)行。
Python3.6使用Pyinstaller打包,生成的exe文件無(wú)法運(yùn)行?
打包時(shí),您不需要查看錯(cuò)誤消息就知道您一定缺少一些東西。例如,有一個(gè)aaa.py公司文件,需要打包,才能安裝-Faaa.py公司在這一代之后,事實(shí)上,不管你錯(cuò)過(guò)了什么庫(kù),你都可以成功地打包它。但是,您應(yīng)該善于從提示中發(fā)現(xiàn)問(wèn)題。他將提示您需要什么庫(kù),然后在生成的spec文件中添加庫(kù)的路徑。在任何情況下,都是通過(guò)添加任意庫(kù)的路徑來(lái)提示缺少什么,然后知道沒有缺少庫(kù)的信息,就完成了正常的打包。完成了!到此為止
用pyinstaller生成exe文件后為什么那么大?
設(shè)置設(shè)置.py:import sysfrom cx凍結(jié)導(dǎo)入設(shè)置,executablebase=nonexecutibles=[可執(zhí)行文件(”打包文件名)。Py”,base=base)]setup(name=“file”,version=“1.0”,description=“name,executables=executables)在CMD的根目錄中輸入:Python設(shè)置.pyBuild可以打包
原因是我的界面是一個(gè)由qtdesigner生成的UI文件,但是pyinstaller沒有打包它。我將pyuic生成的相關(guān)UI文件和py文件復(fù)制到開始.exe要運(yùn)行的目錄!如果pyinstaller使用-f命令只生成一個(gè)exe,還需要復(fù)制相應(yīng)的UI和UI生成的PY文件,按照上述方法創(chuàng)建exe目錄,目錄結(jié)構(gòu)應(yīng)與原項(xiàng)目結(jié)構(gòu)一致。