溫馨提示×

溫馨提示×

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

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

如何使用PyInstaller庫把Python程序打包成exe

發(fā)布時間:2022-05-30 10:36:51 來源:億速云 閱讀:221 作者:zzz 欄目:開發(fā)技術

這篇文章主要介紹“如何使用PyInstaller庫把Python程序打包成exe”,在日常操作中,相信很多人在如何使用PyInstaller庫把Python程序打包成exe問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用PyInstaller庫把Python程序打包成exe”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、pyinstaller簡介

Python是一個腳本語言,被解釋器解釋執(zhí)行。它的發(fā)布方式:

  • .py文件:對于開源項目或者源碼沒那么重要的,直接提供源碼,需要使用者自行安裝Python并且安裝依賴的各種庫。(Python官方的各種安裝包就是這樣做的)

  • .pyc文件:有些公司或個人因為機密或者各種原因,不愿意源碼被運行者看到,可以使用pyc文件發(fā)布,pyc文件是Python解釋器可以識別的二進制碼,故發(fā)布后也是跨平臺的,需要使用者安裝相應版本的Python和依賴庫。

  • 可執(zhí)行文件:對于非碼農(nóng)用戶或者一些小白用戶,你讓他裝個Python同時還要折騰一堆依賴庫,那簡直是個災難。對于此類用戶,最簡單的方式就是提供一個可執(zhí)行文件,只需要把用法告訴Ta即可。比較麻煩的是需要針對不同平臺需要打包不同的可執(zhí)行文件(Windows,Linux,Mac,...)。

PyInstaller的原理簡介

PyInstaller其實就是把python解析器和你自己的腳本打包成一個可執(zhí)行的文件,和編譯成真正的機器碼完全是兩回事,所以千萬不要指望成打包成一個可執(zhí)行文件會提高運行效率,相反可能會降低運行效率,好處就是在運行者的機器上不用安裝python和你的腳本依賴的庫。在Linux操作系統(tǒng)下,它主要用的binutil工具包里面的lddobjdump命令。

PyInstaller輸入你指定的的腳本,首先分析腳本所依賴的其他腳本,然后去查找,復制,把所有相關的腳本收集起來,包括Python解析器,然后把這些文件放在一個目錄下,或者打包進一個可執(zhí)行文件里面。

需要注意的是,PyInstaller打包的執(zhí)行文件,只能在和打包機器系統(tǒng)同樣的環(huán)境下。也就是說,不具備可移植性,若需要在不同系統(tǒng)上運行,就必須針對該平臺進行打包。

將.py源代碼轉換成無需源代碼的可執(zhí)行文件

如何使用PyInstaller庫把Python程序打包成exe

pyInstalller下載網(wǎng)址

如何使用PyInstaller庫把Python程序打包成exe

二、pyinstaller在windows下的安裝

使用命令pip install pyinstaller即可

pip install pyinstaller

在windows下,pyinstaller需要PyWin32的支持。當用pip安裝pyinstaller時未找到PyWin32,會自動安裝pypiwin32。

三、打包

打包的app里并不包含任何源碼,但將腳本的.pyc文件打包了。

基本語法:

pyinstaller options myscript.py

常用的可選參數(shù)如下:

  • -D, --one-dir打包成一個文件夾,默認

  • -F, --one-file打包成一個exe文件

  • -p DIR, --paths DIR添加路徑,一般用來添加程序所用到的包的所在位置

  • -c, --console, --nowindowed提供程序視窗,程序有輸入輸出的界面,默認

  • -w, --windowed, --noconsole無視窗,程序后臺運行

  • -i <FILE.ico or FILE.exe,ID or FILE.icns>, --icon <FILE.ico or FILE.exe,ID or FILE.icns>添加icon圖標

pyinstaller --onefile --nowindowed  C:/PycharmProjects/untitled/hello.py

如何使用PyInstaller庫把Python程序打包成exe

就會在當前文件下形成build文件夾、dist文件夾和.spec文件。
dist里就是guess_exe.exe可執(zhí)行文件。

如何使用PyInstaller庫把Python程序打包成exe

如果有打包錯誤,具體看build里的warn***.txt文檔,里面詳細記載了錯誤的原因。一般都是庫丟失。
spec文件告訴PyInstaller如何去處理腳本。它對腳本名以及大多數(shù)pyinstaller的可選參數(shù)進行加密。PyInstaller就是通過執(zhí)行spec文件的內容來build the app。

四、pyinstaller常見錯誤

用pyinstaller生成exe時報錯 TypeError: an integer is required (got type bytes)

TypeError: an integer is required (got type bytes)

解決辦法:報錯前的pyinstaller是用 pip install pyinstaller 來安裝的,改成用 pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz 再安裝一次。

到此,關于“如何使用PyInstaller庫把Python程序打包成exe”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

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

AI