摘要:隨著云計算,大數(shù)據(jù)和人工智能的發(fā)展,被稱為“膠水”語言的Python應用到各個領域。由于Python語言是解釋性的,通過它編寫的程序要打包成exe可執(zhí)行文件才可脫離環(huán)境運行,本文介紹如何使用PyInstaller打包Python程序為exe可執(zhí)行文件的方法。
關鍵字: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是一種跨平臺的、開源的、免費的、解釋型的高級編程語言。由荷蘭人Guido van Rossum于1989年發(fā)明。Python有著簡單、開發(fā)速度快、節(jié)省時間和容易學習等特點。近幾年發(fā)展迅猛,在2018年3月的TIOBE編程語言排行榜中已晉升到第4名。Python的應用領域非常廣泛,在Web編程、圖形處理、黑客編程、數(shù)據(jù)分析、網(wǎng)絡爬蟲和科學計算領域都能找到身影。
2.主要技術介紹
在Python環(huán)境中,針對Python腳本轉換為Windows平臺上可執(zhí)行文件的工具為Py2exe和cx_freeze。但這兩種工具都需手動輸入所依賴庫的名稱,無法自動識別,生成過程中易出現(xiàn)錯誤。PyInstaller輸入指定的腳本,首先分析腳本所依賴庫的腳本,然后自動查找復制,把相關腳本和Python解析器放到build目錄中,并在dist目錄中生成可執(zhí)行文件。
PyInstaller的命令格式如下:
Pyinstaller參數(shù)python腳本文件,參數(shù)如下:
-F生成單個可執(zhí)行文件;
-w去掉cmd窗口,GUI界面程序時有用;
-c去掉cmd窗口,控制臺程序時有用;
-p需要加載的類庫路徑;
-I可執(zhí)行文件的ico圖標。
3.操作過程
3.1.創(chuàng)建Python虛擬環(huán)境
Python的虛擬環(huán)境可以為一個Python項目提供獨立的解釋環(huán)境、依賴包等資源,既能夠很好的隔離不同項目使用不同Python版本帶來的沖突,而且還能方便項目的發(fā)布。在Python虛擬環(huán)境中使用PyInstaller生成可執(zhí)行文件,可以去掉多余的依賴包,縮小可執(zhí)行文件的大小。
(1)使用pip安裝virtualenv文件,在cmd中輸入命令:pip install virtualenv;
(2)創(chuàng)建Python虛擬環(huán)境,在cmd中輸入命令進入項目文件夾D:\PythonWorkSpace
\jpgtopdf\,再次輸入命令:virtualenv venv創(chuàng)建Python虛擬環(huán)境文件夾;
(3)激活Python虛擬環(huán)境,在cmd中輸入命令:cd venv進入虛擬環(huán)境目錄,再次輸
入命令:Scripts\activate,前面出現(xiàn)venv符號就表示進入虛擬環(huán)境,退出環(huán)境輸入命令:Scripts\deactivate。
3.2.配置自定義模塊環(huán)境變量
在使用PyInstaller打包為可執(zhí)行文件的過程中,要保證打包后的可執(zhí)行文件能正常執(zhí)行,Python腳本中引入的自定義模塊必須要配置環(huán)境才可打包到可執(zhí)行文件中,配置過程為:在venv目錄中的進入路徑Lib\site-packages,創(chuàng)建文件MyModule.pth,編輯文件并輸入自定義模塊所在路徑D:\PythonWorkSpace\MyModule,完成后保存文件。
3.3打包exe可執(zhí)行文件
在cmd中輸入命令:cd D:\PythonWorkSpace\jpgtopdf進入Python腳本所在目錄,然后再次輸入命令:pyinstaller -F -w -i pdfconvert.ico PdfConverter.py開始打包exe可執(zhí)行文件,其中-F表示生成單個可執(zhí)行文件,由于是GUI程序使用-w參數(shù)去掉cmd窗口,-i參數(shù)指定生成可執(zhí)行文件的圖標為pdfconvert.ico,在cmd中出現(xiàn)提示“Building EXE from EXE-00.toc completed successfully.”,表示可執(zhí)行文件生成完成,在dist目錄中可看到可執(zhí)行文件PdfConverter.exe。
4.結語
通過以上操作可知,使用PyInstaller打包Python腳本為可執(zhí)行文件操作步驟簡單,方便快捷。生成的可執(zhí)行文件在Windows 10與Windows 7操作系統(tǒng)上都能正常運行,表明PyInstaller生成的可執(zhí)行文件具有良好的移植性,是將Python腳本生成可執(zhí)行文件的比較理想的選擇。
參考文獻:
[1] 王潤文,王圣輝,邊潤根. Python程序打包成exe可執(zhí)行文件的方法探究[J]. 無線互聯(lián)科技,2017,(12):52.
[2] 明日科技. 零基礎學Python(全彩版)[M].長春:吉林大學出版社,2018.
[3] 百度經(jīng)驗.Windows:使用virtualenv創(chuàng)建虛擬環(huán)境,安裝pip[EB/OL].[2017-5-24]. https://
jingyan.baidu.com/article/73c3ce281660e9e50243d978.html.
[4] 博客園. (轉)為Python添加默認模塊搜索路徑[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.
作者簡介:唐磊(1983-),男(漢族),重慶萬州,碩士,實驗師,主要研究方向為軟件工程、網(wǎng)絡工程、移動互聯(lián)網(wǎng)應用、云計算與大數(shù)據(jù)應用。