真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

pyinstaller簡潔教程

PyInstaller可以用來打包python應(yīng)用程序,打包完的程序就可以在?有安裝Python解釋器的機(jī)器上運(yùn)行了。PyInstaller支持Python 2.7和Python 3.3+??梢栽赪indows、Mac OS X和Linux上使用,但是并不是跨平臺(tái)的,而是說你要是希望打包成.exe文件,需要在Windows系統(tǒng)上運(yùn)行PyInstaller進(jìn)行打包工作;打包成mac app,需要在Mac OS上使用。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),韓城企業(yè)網(wǎng)站建設(shè),韓城品牌網(wǎng)站建設(shè),網(wǎng)站定制,韓城網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,韓城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。安裝 linux or mac

你可以從PyPi上下載安裝,當(dāng)然也可以使用pip或者easy_install來安裝。

1 2 3 
pip install pyinstaller or easy_install pyinstaller 

版本更新

1 2 3 
pip install --upgrade pyinstaller or easy_install --upgrade pyinstaller 
windows

Windows上運(yùn)行PyInstaller還需要PyWin32或者pypiwin32,其中pypiwin32在你安裝PyInstaller的時(shí)候會(huì)自動(dòng)安裝。

使用PyInstaller

PyInstaller分析你的python程序,找到所有的依賴項(xiàng)。然后將依賴文件和python解釋器放到一個(gè)文件夾下或者一個(gè)可執(zhí)行文件中。

打包成一個(gè)文件夾

當(dāng)使用PyInstaller打包的時(shí)候,默認(rèn)生成一個(gè)文件夾,文件夾中包含所有依賴項(xiàng),以及可執(zhí)行文件。打包成文件夾的好處就是debug的時(shí)候可以清楚的看到依賴項(xiàng)有沒有包含。另一個(gè)好處是更新的時(shí)候,只需要更新可執(zhí)行文件就可以了。當(dāng)然缺點(diǎn)也很明顯,不方便,不易管理。

1 
pyinstaller script.py 

那么它是如何工作的呢?PyInstaller的引導(dǎo)程序是一個(gè)二進(jìn)制可執(zhí)行程序。當(dāng)用戶啟動(dòng)你的程序的時(shí)候,PyInstaller的引導(dǎo)程序開始運(yùn)行,首先創(chuàng)建一個(gè)臨時(shí)的Python環(huán)境,然后通過Python解釋器導(dǎo)入程序的依賴,當(dāng)然他們都在同一個(gè)文件夾下。

打包成一個(gè)文件

我們可以用onefile參數(shù)將所有文件打包到一個(gè)可執(zhí)行文件中。

1 
pyinstaller --onefile script.py 

打包成一個(gè)文件相對(duì)于文件夾更容易管理。壞處運(yùn)行相對(duì)比較慢。這個(gè)文件中包含了壓縮的依賴文件拷貝(.so文件)。

當(dāng)程序運(yùn)行時(shí),PyInstaller的引導(dǎo)程序會(huì)新建一個(gè)臨時(shí)文件夾。然后解壓程序的第三方依賴文件到臨時(shí)文件夾中。這也是為什么一個(gè)可執(zhí)行文件比文件夾中執(zhí)行的時(shí)間要長的原因。剩下的就和上面的一樣了。

spec 文件

當(dāng)你執(zhí)行下面命令

1 
pyinstaller options..script.py 

PyInstaller首先建一個(gè)sepc(specification)文件:script.spec。這個(gè)文件的存放地址可以使用參數(shù)–specpath= 來定義,默認(rèn)放在當(dāng)前文件夾下。

spec文件的作用是什么呢?它會(huì)告訴PyInstaller如何處理你的py文件,它會(huì)將你的py文件名字和輸入的大部分參數(shù)進(jìn)行編碼。PyInstaller通過執(zhí)行spec文件中的內(nèi)容來生成app,有點(diǎn)像makefile。正常使用中我們是不需要管spec文件的,但是下面幾種情況需要修改spec文件:

需要打包資源文件

需要include一些PyInstaller不知道的run-time庫

為可執(zhí)行文件添加run-time 選項(xiàng)

多程序打包

可以通過下面命令生成spec文件

1 
pyi-makespec options script.py [other scripts ...] 

修改完spec文件,就可以通過下面命令來生成app文件了

1 
pyinstaller options script.spec 

當(dāng)通過spec文件來生成app文件的時(shí)候只有下面幾個(gè)參數(shù)是有用的:

–upx-dir=

–distpath=

–noconfirm=

–ascii

spec 文件解析

下面是一個(gè)spec文件的例子。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 
block_cipher = None a = Analysis([\'minimal.py\'],     pathex=[\'/Developer/PItests/minimal\'],     binaries=None,     datas=None,     hiddenimports=[],     hookspath=None,     runtime_hooks=None,     excludes=None,     ciper=block_cipher) pyz = PYZ(a.pure, a.zipped_data,     cipher=block_cipher) exe = EXE(pyz, ...) coll = COLLECT(...) 

spec文件中主要包含4個(gè)class: Analysis, PYZ, EXE和COLLECT.

Analysis以py文件為輸入,它會(huì)分析py文件的依賴模塊,并生成相應(yīng)的信息

PYZ是一個(gè).pyz的壓縮包,包含程序運(yùn)行需要的所有依賴

EXE根據(jù)上面兩項(xiàng)生成

COLLECT生成其他部分的輸出文件夾,COLLECT也可以沒有

修改spec文件

我們上面說過有時(shí)候PyInstaller自動(dòng)生成的spec文件并不能滿足我們的需求,最常見的情況就是我們的程序依賴我們本地的一些數(shù)據(jù)文件,這個(gè)時(shí)候就需要我們自己去編輯spec文件來添加數(shù)據(jù)文件了。
上面的spec文件解析中Analysis中的datas就是要添加到項(xiàng)目中的數(shù)據(jù)文件,我們可以編輯datas.

1 2 3 4 5 6 
a = Analysis(   ...   datas = [(\'you/source/file/path\',\'file_name_in_project\'),   (\'source/file2\', \'file_name2\')]   ...   ) 

可以認(rèn)為datas是一個(gè)List,每個(gè)元素是一個(gè)二元組。元組的第一個(gè)元素是你本地文件索引,第二個(gè)元素是拷貝到項(xiàng)目中之后的文件名字。除了上面那種寫法,也可以將其提出來。

1 2 3 4 5 6 7 
added_files = [...] a = Analysis(   ...   datas = added_files,   ...   ) 

其他的二進(jìn)制文件添加方法類似。

總結(jié)

最后簡單來說,我們要通過PyInstaller生成可執(zhí)行的文件主要下面兩步。

1 
pyinstaller [option] mypython.py 

option為空生成文件夾,選擇onefile,生成一個(gè)文件。
如果項(xiàng)目有一些依賴的數(shù)據(jù)文件,上面生成的二進(jìn)制文件是無法運(yùn)行的,這個(gè)時(shí)候可以通過修改spec文件,讓后再用pyinstaller運(yùn)行spec文件。

1 
pyinstaller [option] mypython.spec 

當(dāng)然也按上文那樣先生成spec文件。



網(wǎng)站欄目:pyinstaller簡潔教程
URL分享:http://weahome.cn/article/cjiojg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部