目錄
Freezing Your Code
安裝PyInstaller
使用PyInstaller
PyInstaller的原理簡介
首頁 後端開發 Python教學 如何將Python腳本打包成執行檔? (詳細)

如何將Python腳本打包成執行檔? (詳細)

Sep 27, 2018 pm 03:30 PM
蟒蛇腳本

本篇文章帶給大家的內容是關於如何將Python腳本打包成執行檔? (詳細),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

Python是一個腳本語言,被解釋器解釋執行。它的發布方式:

  • .py檔案:對於開源專案或原始碼沒那麼重要的,直接提供原始碼,需要使用者自行安裝Python並且安裝依賴的各種程式庫。 (Python官方的各種安裝包就是這樣做的)

  • .pyc檔:有些公司或個人因為機密或各種原因,不願意源碼被運行者看到,可以使用pyc檔案發布,pyc檔案是Python解釋器可以辨識的二進位碼,故發布後也是跨平台的,需要使用者安裝對應版本的Python和依賴函式庫。

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

本文主要就是介紹最後一種方式,.py和.pyc都比較簡單,Python本身就可以搞定。將Python腳本打包成可執行檔有多種方式,本文重點介紹PyInstaller,其它僅作比較和參考。

Freezing Your Code

各種打包工具的比較如下(來自文章Freezing Your Code):

##One-file modeZipfile import Eggspkg_resources support#bbFreezeyes#yesyesnoMITno#yesyesyespy2exeyesno#noyesMIT#pyInstaller##nocx_FreezeyesyesyesyesPSFnoyesyesno#py2app##no
Solution #Windows Linux OS X Python 3 License
# #yes yes no no
yes yes yes no GPL yes no yes
no yes yes MIT #no yes yes
################################################ yes#############

PS.其中pyInstaller和cx_Freeze都是不錯的,stackoverflow上也有人建議用cx_Freeze,說是更便捷些。 pkg_resources新版的pyInstaller貌似是支持的。

安裝PyInstaller

對於那些網路比較穩定,能夠流暢使用pip來源位址的用戶,直接下面的指令就可以搞定:

pip install pyinstaller
登入後複製

通常我們會下載原始碼包,然後進入套件目錄,執行下面的命令(需要安裝setuptools):

python setup.py install
登入後複製

安裝完後,檢查安裝成功與否:

pyinstaller --version
登入後複製

安裝成功後,就可以使用下面的指令了:

  • pyinstaller : 打包可執行檔的主要指令,詳細用法下面會介紹。

  • pyi-archive_viewer : 查看執行套件內的檔案清單。

  • pyi-bindepend : 查看執行檔依賴的動態函式庫(.so或.dll檔)

  • pyi-... : 等等。

使用PyInstaller

pyinstaller的語法:

pyinstaller [options] script [script ...] | specfile
登入後複製

最簡單的用法,在和myscript.py同目錄下執行指令:

pyinstaller mycript.py
登入後複製

然後會看到新增加了兩個目錄build和dist,dist下面的文件就是可以發布的可執行文件,對於上面的命令你會發現dist目錄下面有一堆文件,各種都動態庫文件和myscrip可執行文件。有時這樣感覺比較麻煩,需要打包dist下面的所有東西才能發布,萬一丟掉一個動態庫就無法運行了,好在pyInstaller支持單文件模式,只需要執行:

pyinstaller -F mycript.py
登入後複製

你會發現dist下面只有一個可執行文件,這個單文件就可以發布了,可以運行在你正在使用的作業系統類似的系統的下面。

當然,pyinstaller還有各種選項,有通用選項,如-d選項用於debug,了解pyInstaller執行的過程;還有一些針對不同平台的選項,具體用法可訪問PyInstaller官方WIKI。

在執行pyInstaller指令的時候,會在和腳本相同目錄下,產生一個.spec文件,該文件會告訴pyinstaller如何處理你的所有腳本,同時包含了命令選項。一般我們不用去理會這個文件,若需要打包資料文件,或給打包的二進位增加一些Python的運行時選項時...一些高級打包選項時,需要手動編輯.spec文件。可以使用:

pyi-makespec options script [script ...]
登入後複製

建立一個.spec文件,對於手動編輯的.spec文件,我們可以使用下面任意一條命令:

pyinstaller specfile
pyi-build specfile
登入後複製

PyInstaller的原理簡介

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

PyInstaller輸入你指定的腳本,先分析腳本所依賴的其他腳本,然後去查找,複製,把所有相關的腳本收集起來,包括Python解析器,然後把這些檔案放在一個目錄下,或打包進一個可執行檔裡面。

可以直接發佈輸出的整個資料夾裡面的文件,或是產生的可執行檔。你只需要告訴用戶,你的應用程式App是自我包含的,不需要安裝其他套件,或某個版本的Python,就可以直接運作了。

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

以上是如何將Python腳本打包成執行檔? (詳細)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用pyjokes創建隨機笑話的Python腳本 使用pyjokes創建隨機笑話的Python腳本 Sep 13, 2023 pm 08:25 PM

您想為您的Python腳本或應用程式添加一些幽默嗎?無論您是建立聊天機器人、開發命令列工具,還是只是想用隨機笑話自娛自樂,pyjokes庫都可以為您提供幫助。透過pyjokes,您可以輕鬆生成各種類別的笑話,並根據您的喜好進行自訂。在這篇文章中,我們將探討如何使用pyjokes庫在Python中創建隨機笑話。我們將介紹安裝過程、產生不同類別的笑話、自訂笑話、在控制台應用程式或網頁中顯示它們,以及處理可能發生的任何潛在錯誤。安裝pyjokes在我們開始使用pyjokes創建隨機笑話之前,我們需要

crontab定時任務不執行的一些原因,你知道嗎? crontab定時任務不執行的一些原因,你知道嗎? Mar 09, 2024 am 09:49 AM

crontab定時任務不執行的一些緣由總結更新時間:2019年01月09日09:34:57作者:田野上的希望這篇文章主要給你們總結介紹了關於crontab定時任務不執行的一些緣由,對每種可能發生的誘因都給出了解決方式,對遇見這個問題的同事們具有一定的參考學習價值,須要的同學們下邊隨著小編來一起學習學習吧序言近來在工作中遇見了一些問題, crontab定時任務竟然不執行,後來我在網上找的時侯發覺網上主要說了這5個誘因:1crond服務未啟動crontab不是Linux內核的功能,而是依賴一個cron

Python腳本自動刷新Excel電子表格 Python腳本自動刷新Excel電子表格 Sep 09, 2023 pm 06:21 PM

Python和Excel是兩個強大的工具,結合起來可以開啟自動化世界。 Python具有多功能的程式庫和使用者友好的語法,使我們能夠編寫腳本來有效地執行各種任務。另一方面,Excel是一種廣泛使用的電子表格程序,它為資料分析和操作提供了熟悉的介面。在本教程中,我們將探索如何利用Python來自動化刷新Excel電子表格的流程,從而節省我們的時間和精力。您是否發現自己花了寶貴的時間使用更新的資料手動刷新Excel電子表格?這是一項重複且耗時的任務,可能會真正降低生產力。在本文中,我們將引導您完成使用Py

探秘Orange3:打開資料探勘與機器學習新世界! 探秘Orange3:打開資料探勘與機器學習新世界! Mar 04, 2024 pm 08:16 PM

Orange3是一個功能強大的開源資料視覺化和機器學習工具,它具備豐富的資料處理、分析和建模功能,為使用者提供了簡單快速的資料探勘和機器學習解決方案。本文將簡單介紹Orange3的基本功能與使用方法,同時結合實際應用場景與Python程式碼案例,幫助讀者更掌握Orange3的使用技巧。 Orange3的基本功能包括資料載入、資料預處理、特徵選擇、模型建立和評估等。使用者可以利用直覺的介面拖放元件,輕鬆建立資料流程。同時,透過Python腳本,也能完成更複雜的資料處理與建模任務。下面我們將通過一個實際

PyCharm進階教學:利用PyInstaller將程式碼打包為EXE格式 PyCharm進階教學:利用PyInstaller將程式碼打包為EXE格式 Feb 20, 2024 am 09:34 AM

PyCharm是一款功能強大的Python整合開發環境,提供了豐富的功能和工具來幫助開發者提高效率。其中,PyInstaller是一個常用的工具,可以將Python程式碼打包為執行檔(EXE格式),方便在沒有Python環境的機器上運作。在本篇文章中,我們將介紹如何在PyCharm中使用PyInstaller將Python程式碼打包為EXE格式,並提供具體的

用於監控網站變化的Python腳本 用於監控網站變化的Python腳本 Aug 29, 2023 pm 12:25 PM

在當今的數位時代,了解網站上的最新變化對於各種目的至關重要,例如追蹤競爭對手網站上的更新、監控產品可用性或隨時了解重要資訊。手動檢查網站是否有更改可能既耗時又低效。這就是自動化發揮作用的地方。在這篇文章中,我們將探討如何建立Python腳本來監控網站變更。透過利用Python的強大功能和一些方便的庫,我們可以自動化檢索網站內容、與先前的版本進行比較並通知我們任何更改的過程。這使我們能夠保持主動並及時對我們監控的網站上的更新或修改做出反應。設定環境在開始編寫腳本來監控網站變更之前,我們需要設定P

怎麼重複字串_python重複字串教程 怎麼重複字串_python重複字串教程 Apr 02, 2024 pm 03:58 PM

1.先開啟pycharm,進入到pycharm首頁。 2.然後新建python腳本,右鍵--點選new--點選pythonfile。 3.輸入一段字串,代碼:s="-"。 4.接著需要把字串裡面的符號重複20次,代碼:s1=s*20。5、輸入列印輸出代碼,代碼:print(s1)。 6.最後運行腳本,在最底部會看到我們的回傳值:-就重複了20次。

pycharm怎麼讀取excel數據 pycharm怎麼讀取excel數據 Apr 03, 2024 pm 08:42 PM

如何使用PyCharm讀取Excel資料?步驟如下:安裝openpyxl庫;匯入openpyxl庫;載入Excel工作簿;存取特定工作表;存取工作表中的儲存格;遍歷行和列。

See all articles