摘要:隨著云計(jì)算,大數(shù)據(jù)和人工智能的發(fā)展,被稱為“膠水”語言的Python應(yīng)用到各個(gè)領(lǐng)域。由于Python語言是解釋性的,通過它編寫的程序要打包成exe可執(zhí)行文件才可脫離環(huán)境運(yùn)行,本文介紹如何使用PyInstaller打包Python程序?yàn)閑xe可執(zhí)行文件的方法。
關(guān)鍵字:Python;PyInstaller;可執(zhí)行文件; 腳本; virtualenv
Research on exe executable file packaging method based on PyInstaller
Tang Lei
(Chongqing Three Gorges Polytechnic College, Chongqing, Wanzhou 404155)
Abstract:With the development of cloud computing, large data and artificial intelligence, Python, known as the "glue" language, has been applied to various fields. Because the Python language is interpretive, programs written by it can only be packaged into exe executable files to run out of the environment. This article describes how to use PyInstaller to package Python programs as exe executable files.
Keywords:Python; PyInstaller; executable file; script; virtualenv
1.引言
Python是一種跨平臺(tái)的、開源的、免費(fèi)的、解釋型的高級(jí)編程語言。由荷蘭人Guido van Rossum于1989年發(fā)明。Python有著簡(jiǎn)單、開發(fā)速度快、節(jié)省時(shí)間和容易學(xué)習(xí)等特點(diǎn)。近幾年發(fā)展迅猛,在2018年3月的TIOBE編程語言排行榜中已晉升到第4名。Python的應(yīng)用領(lǐng)域非常廣泛,在Web編程、圖形處理、黑客編程、數(shù)據(jù)分析、網(wǎng)絡(luò)爬蟲和科學(xué)計(jì)算領(lǐng)域都能找到身影。
2.主要技術(shù)介紹
在Python環(huán)境中,針對(duì)Python腳本轉(zhuǎn)換為Windows平臺(tái)上可執(zhí)行文件的工具為Py2exe和cx_freeze。但這兩種工具都需手動(dòng)輸入所依賴庫的名稱,無法自動(dòng)識(shí)別,生成過程中易出現(xiàn)錯(cuò)誤。PyInstaller輸入指定的腳本,首先分析腳本所依賴庫的腳本,然后自動(dòng)查找復(fù)制,把相關(guān)腳本和Python解析器放到build目錄中,并在dist目錄中生成可執(zhí)行文件。
PyInstaller的命令格式如下:
Pyinstaller參數(shù)python腳本文件,參數(shù)如下:
-F生成單個(gè)可執(zhí)行文件;
-w去掉cmd窗口,GUI界面程序時(shí)有用;
-c去掉cmd窗口,控制臺(tái)程序時(shí)有用;
-p需要加載的類庫路徑;
-I可執(zhí)行文件的ico圖標(biāo)。
3.操作過程
3.1.創(chuàng)建Python虛擬環(huán)境
Python的虛擬環(huán)境可以為一個(gè)Python項(xiàng)目提供獨(dú)立的解釋環(huán)境、依賴包等資源,既能夠很好的隔離不同項(xiàng)目使用不同Python版本帶來的沖突,而且還能方便項(xiàng)目的發(fā)布。在Python虛擬環(huán)境中使用PyInstaller生成可執(zhí)行文件,可以去掉多余的依賴包,縮小可執(zhí)行文件的大小。
(1)使用pip安裝virtualenv文件,在cmd中輸入命令:pip install virtualenv;
(2)創(chuàng)建Python虛擬環(huán)境,在cmd中輸入命令進(jìn)入項(xiàng)目文件夾D:\PythonWorkSpace
\jpgtopdf\,再次輸入命令:virtualenv venv創(chuàng)建Python虛擬環(huán)境文件夾;
(3)激活Python虛擬環(huán)境,在cmd中輸入命令:cd venv進(jìn)入虛擬環(huán)境目錄,再次輸
入命令:Scripts\activate,前面出現(xiàn)venv符號(hào)就表示進(jìn)入虛擬環(huán)境,退出環(huán)境輸入命令:Scripts\deactivate。
3.2.配置自定義模塊環(huán)境變量
在使用PyInstaller打包為可執(zhí)行文件的過程中,要保證打包后的可執(zhí)行文件能正常執(zhí)行,Python腳本中引入的自定義模塊必須要配置環(huán)境才可打包到可執(zhí)行文件中,配置過程為:在venv目錄中的進(jìn)入路徑Lib\site-packages,創(chuàng)建文件MyModule.pth,編輯文件并輸入自定義模塊所在路徑D:\PythonWorkSpace\MyModule,完成后保存文件。
3.3打包exe可執(zhí)行文件
在cmd中輸入命令:cd D:\PythonWorkSpace\jpgtopdf進(jìn)入Python腳本所在目錄,然后再次輸入命令:pyinstaller -F -w -i pdfconvert.ico PdfConverter.py開始打包exe可執(zhí)行文件,其中-F表示生成單個(gè)可執(zhí)行文件,由于是GUI程序使用-w參數(shù)去掉cmd窗口,-i參數(shù)指定生成可執(zhí)行文件的圖標(biāo)為pdfconvert.ico,在cmd中出現(xiàn)提示“Building EXE from EXE-00.toc completed successfully.”,表示可執(zhí)行文件生成完成,在dist目錄中可看到可執(zhí)行文件PdfConverter.exe。
4.結(jié)語
通過以上操作可知,使用PyInstaller打包Python腳本為可執(zhí)行文件操作步驟簡(jiǎn)單,方便快捷。生成的可執(zhí)行文件在Windows 10與Windows 7操作系統(tǒng)上都能正常運(yùn)行,表明PyInstaller生成的可執(zhí)行文件具有良好的移植性,是將Python腳本生成可執(zhí)行文件的比較理想的選擇。
參考文獻(xiàn):
[1] 王潤文,王圣輝,邊潤根. Python程序打包成exe可執(zhí)行文件的方法探究[J]. 無線互聯(lián)科技,2017,(12):52.
[2] 明日科技. 零基礎(chǔ)學(xué)Python(全彩版)[M].長春:吉林大學(xué)出版社,2018.
[3] 百度經(jīng)驗(yàn).Windows:使用virtualenv創(chuàng)建虛擬環(huán)境,安裝pip[EB/OL].[2017-5-24]. https://
jingyan.baidu.com/article/73c3ce281660e9e50243d978.html.
[4] 博客園. (轉(zhuǎn))為Python添加默認(rèn)模塊搜索路徑[EB/OL].[2016-5-10]. https://
www.cnblogs.com/shanql/articles/5477483.html.
[5] CSDN博客. Python程序打包成exe可執(zhí)行文件[EB/OL].[2017-8-2]. https://
blog.csdn.net/zengxiantao1994/article/details/76578421?locationNum=9&fps;=1.
作者簡(jiǎn)介:唐磊(1983-),男(漢族),重慶萬州,碩士,實(shí)驗(yàn)師,主要研究方向?yàn)檐浖こ獭⒕W(wǎng)絡(luò)工程、移動(dòng)互聯(lián)網(wǎng)應(yīng)用、云計(jì)算與大數(shù)據(jù)應(yīng)用。