python學(xué)習(xí)筆記--將python源文件打包成exe文件(pyinstaller)
pyinstaller 庫的使用
PyInstaller是一個十分有用的第三方庫,它能夠在Windows、Linux、Mac OS X 等操作系統(tǒng)下將 Python 源文件打包,通過對源文件打包,Python 程序可以在沒有安裝 Python 的環(huán)境中運行,也可以作為一個獨立文件方便傳遞和管理。PyInstaller 需要在命令行(控制臺)下用pip 工具安裝,如下:
:\>pip install pyinstaller
或
:\>pip3 install pyinstaller
PyInstaller 的官方網(wǎng)站網(wǎng)址為 http://www.pyinstaller.org/。PyInstaller 庫會自動將 PyInstaller 命令安裝到 Python 解釋器目錄中,與 pip 或 pip3 命令路徑相同,因此可以直接使用。使用PyInstaller 庫十分簡單,請注意,由于 PyInstaller 不支持源文件命中有英文句號(.)存在,假設(shè) dpython.py 文件在 D:\codes 目錄中,命令如下:
:\>pyinstaller dpython.py
或
:\>pyinstaller D:\codes\dpython.py
執(zhí)行完畢后,源文件所在目錄將生成 dist 和 build 兩個文件夾。其中,build 目錄是 pyinstaller 存儲臨時文件的目錄,可以安全刪除。最終的打包程序在 dist 內(nèi)部的 dpython 目錄中。目錄中其他文件是可執(zhí)行文件 dpython.exe 的動態(tài)鏈接庫??梢酝ㄟ^-F 參數(shù)對 Python 源文件生成一個獨立的可執(zhí)行文件,如下:
:\>pyinstaller -F dpython.py
執(zhí)行后在 dist 目錄中出現(xiàn)了 dpython.exe 文件,沒有任何依賴庫,執(zhí)行它即可。使用 PyInstaller 庫需要注意以下問題:文件路徑中不能出現(xiàn)空格和英文句號(.);源文件必須是 UTF-8 編碼,暫不支持其他編碼類型。采用 IDLE編寫的源文件都保存為 UTF-8 編碼形式,可直接使用。PyInstaller 有一些常用參數(shù),如下所示:
-h, --help 查看幫助
-v, --version
查看 PyInstaller 版本
--clean 清理打包過程中的臨時文件
-D, --onedir
默認值,生成 dist 目錄
-F, --onefile
在 dist 文件夾中只生成獨立的打包文件第
-p DIR, --paths DIR 添加 Python 文件使用的第三方庫路徑
-i <.ico or .exe,ID or .icns>,--icon <.ico or .exe,ID or .icns >指定打包程序使用的圖標(icon)文件
PyInstaller 命令不需要在 Python 源文件中增加代碼,只需要通過命令行進行打包即可。-F 參數(shù)最為常用,對于包含第三方庫的源文件,可以使用-p 添加第三方庫所在路徑。如果第三方庫由 pip 安裝且在Python 環(huán)境目錄中,則不需要使用-p 參數(shù)。
相關(guān)文章
python 將print輸出的內(nèi)容保存到txt文件中
本文通過代碼給大家介紹了python 將print輸出的內(nèi)容保存到txt文件中,代碼很簡短,需要的朋友可以參考下2018-07-07Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)保存最后N個元素的方法
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法 保存最后N個元素的方法,涉及Python基于迭代器與生成器實現(xiàn)歷史記錄功能的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02python腳本實現(xiàn)數(shù)據(jù)導(dǎo)出excel格式的簡單方法(推薦)
下面小編就為大家?guī)硪黄猵ython腳本實現(xiàn)數(shù)據(jù)導(dǎo)出Excel格式的簡單方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12python內(nèi)置模塊之上下文管理contextlib
這篇文章介紹了python內(nèi)置模塊之上下文管理contextlib,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06