溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用PyInstaller將python轉(zhuǎn)成可執(zhí)行文件exe筆記

發(fā)布時(shí)間:2020-10-18 21:03:24 來源:腳本之家 閱讀:140 作者:mdxy-dxy 欄目:開發(fā)技術(shù)

1、安裝PyInstaller

PyInstaller的作用如標(biāo)題所說,首先需要下載PyInstaller和UPX,UPX是用來壓縮exe的,點(diǎn)擊超鏈接下載吧,目前穩(wěn)定版本是1.3,注意選擇你使用的操作系統(tǒng)。如在Windows下,將下載解壓后的upx.exe放到PyInstaller解壓后的文件夾內(nèi)。設(shè)PyInstaller的文件夾為D:\PyInstaller,下同。命令行下進(jìn)入D:\PyInstaller,運(yùn)行Configure.py,應(yīng)該看到如下信息:

I: computing EXE_dependencies
I: Finding TCL/TK...
I: found TCL/TK version 8.5
I: testing for Zlib...
I: ... Zlib available
I: Testing for ability to set icons, version resources...
I: ... resource update available
I: Testing for Unicode support...
I: ... Unicode available
I: testing for UPX...
I: ...UPX available
I: computing PYZ dependencies...

不能出現(xiàn)開頭為E(Error)的信息,最好不要有W(Warning)的信息。如果出現(xiàn)找不到某dll,請把該dll文件放置到C:\Windows\system32下,一般能解決。

Linux用戶還需要編譯Runtime Executables,Windows用戶不需要。主要是運(yùn)行Make.py,會在PyInstaller\support\load\下生成run和run_d兩個文件,詳見PyInstaller\doc\Manual.html說明。

2、寫一個Py程序

為了實(shí)驗(yàn),寫一個HelloWorld.py,假設(shè)保存在C:\HelloWorld.py

#!/usr/bin/env python
print 'Hello,World!'
words = raw_input('What do you want to say? ')
print 'you said:'+words

3、創(chuàng)建spec文件

spec文件是用來告訴PyInstaller要編譯的py文件和參數(shù)的。執(zhí)行"Makespec.py+參數(shù)+Py代碼路徑"就可以,主要參數(shù)如下(詳見PyInstaller\doc\Manual.html):

-F, --onefile Py代碼只有一個文件
-D, --onedir Py代碼放在一個目錄中(默認(rèn)是這個)
-K, --tk 包含TCL/TK
-d, --debug 生成debug模式的exe文件
-w, --windowed, --noconsole 窗體exe文件(Windows Only)
-c, --nowindowed, --console 控制臺exe文件(Windows Only)
-X, --upx 使用upx壓縮exe文件
-o DIR, --out=DIR 設(shè)置spec文件輸出的目錄,默認(rèn)在PyInstaller同目錄
--icon=<FILE.ICO> 加入圖標(biāo)(Windows Only)
-v FILE, --version=FILE 加入版本信息文件

對于HelloWorld.py,具體執(zhí)行以下代碼:

Makespec.py --onefile --console --upx --tk -o C:\ C:\HelloWorld.py

執(zhí)行后C:\就出現(xiàn)HelloWorld.spec

4、Build spec文件,生成exe文件

執(zhí)行:

Build.py C:\HelloWorld.spec  

一長串信息之后,你會在C:\下發(fā)現(xiàn)HelloWorld.exe這個文件,就是它啦!體積還真不小,2.7M,這是因?yàn)檫@個HelloWorld程序殺雞用牛刀罷了。此外其它的文件均是過程文件,可刪除。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI