最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyInstaller將Python腳本打包為.exe可執(zhí)行文件的步驟詳解

 更新時(shí)間:2023年12月13日 09:42:22   作者:Lorin洛林  
Python是一門強(qiáng)大而靈活的編程語言,為了方便共享和部署,我們可以將 Python 腳本打包為可執(zhí)行文件(.exe),這樣其他用戶就無需安裝 Python環(huán)境,直接運(yùn)行可執(zhí)行文件即可,本文將介紹如何使用PyInstaller 工具實(shí)現(xiàn)這一目標(biāo),需要的朋友可以參考下

前言

  • Python 是一門強(qiáng)大而靈活的編程語言,然而,在與非技術(shù)人員分享 Python 腳本時(shí),他們可能不具備安裝 Python 解釋器的經(jīng)驗(yàn)。為了方便共享和部署,我們可以將 Python 腳本打包為可執(zhí)行文件(.exe),這樣其他用戶就無需安裝 Python 環(huán)境,直接運(yùn)行可執(zhí)行文件即可。本文將介紹如何使用 PyInstaller 工具實(shí)現(xiàn)這一目標(biāo)。

PyInstaller

  • PyInstaller是一個(gè)用于將Python腳本打包成獨(dú)立可執(zhí)行文件的工具。它的目標(biāo)是方便地將Python應(yīng)用程序分發(fā)給沒有安裝Python解釋器的用戶,使得Python腳本可以在沒有Python環(huán)境的系統(tǒng)上運(yùn)行。

特點(diǎn)

跨平臺支持

  • PyInstaller可以在Windows、Linux和MacOS等多個(gè)平臺上運(yùn)行,并生成相應(yīng)平臺的可執(zhí)行文件。

自動(dòng)依賴項(xiàng)處理

  • PyInstaller會(huì)自動(dòng)檢測Python腳本的依賴項(xiàng),并將它們打包到生成的可執(zhí)行文件中。

單文件發(fā)布

  • 使用--onefile選項(xiàng),可以將所有的依賴項(xiàng)打包成一個(gè)單獨(dú)的可執(zhí)行文件,方便分發(fā)和部署。

支持圖形用戶界面(GUI)和命令行界面(CLI)應(yīng)用

  • PyInstaller適用于各種類型的Python應(yīng)用,包括包含圖形用戶界面的桌面應(yīng)用和命令行工具。

支持多種打包選項(xiàng)

  • PyInstaller提供了許多命令行選項(xiàng),允許用戶靈活配置打包過程,例如指定可執(zhí)行文件的名稱、添加圖標(biāo)、手動(dòng)添加依賴項(xiàng)等。

基本用法

pyinstaller your_script.py

常用參數(shù)

  • --onefile(-F): 將所有依賴項(xiàng)打包成一個(gè)單獨(dú)的可執(zhí)行文件。
pyinstaller --onefile your_script.py
  • --name your_custom_name: 指定生成的可執(zhí)行文件的名稱
pyinstaller --name your_custom_name your_script.py
  • --icon=your_icon.ico: 指定生成的可執(zhí)行文件的圖標(biāo)。圖標(biāo)文件通常是 .ico 格式。
pyinstaller --onefile --icon=your_icon.ico your_script.py
  • --hidden-import=module_name: 手動(dòng)添加缺失的依賴項(xiàng)
pyinstaller --onefile --requirements=requirements.txt your_script.py
  • --requirements=requirements.txt: 指定包含依賴項(xiàng)列表的文件。
pyinstaller --onefile --requirements=requirements.txt your_script.py

其它參數(shù)

--clean: 在打包前刪除臨時(shí)文件和輸出目錄。
--debug: 在調(diào)試模式下運(yùn)行 PyInstaller。
--log-level: 指定日志級別,如 --log-level=DEBUG。
-w 是一個(gè)命令行選項(xiàng),用于生成無控制臺窗口的可執(zhí)行文件。
-p 用于添加模塊搜索路徑。

版本 & 環(huán)境

  • Python 2.7
  • Windows 11 家庭中文版

實(shí)現(xiàn)步驟

安裝 PyInstaller

  • 首先確保你已經(jīng)安裝了 Python。然后,打開命令行或終端,并運(yùn)行以下命令安裝 PyInstaller
pip install pyinstaller
  • 注意:由于本人使用的是 Python 2.7Python 2.7 已經(jīng)在2020年結(jié)束了官方支持。然而,PyInstaller 3.6.0 是最后一個(gè)官方宣布支持 Python 2.x 的版本。因此我們需要指定 PyInstaller的版本,否則會(huì)安裝失敗。
pip install pyinstaller==3.6.0

創(chuàng)建 Python 腳本

  • 編寫你的 Python 腳本,并確保它能夠在你的本地 Python 環(huán)境中正常運(yùn)行。這個(gè)腳本將是最終可執(zhí)行文件的源代碼。
  • 這里我直接使用最近編寫的一個(gè)爬蟲小程序作為示例。

使用 PyInstaller 打包

$ pyinstaller --onefile -p venv/Lib/site-packages 20231207.py
39 INFO: PyInstaller: 3.6
39 INFO: Python: 2.7.18
39 INFO: Platform: Windows-10-10.0.22621
39 INFO: wrote C:\Users\MQiuj\PycharmProjects\pythonProject\20231207.spec
40 INFO: UPX is not available.
45 INFO: Extending PYTHONPATH with paths
['C:\\Users\\MQiuj\\PycharmProjects\\pythonProject',
 'C:\\Users\\MQiuj\\PycharmProjects\\pythonProject\\venv\\Lib\\site-packages',
 'C:\\Users\\MQiuj\\PycharmProjects\\pythonProject']
45 INFO: checking Analysis
46 INFO: Building because pathex changed
46 INFO: Initializing module dependency graph...
46 INFO: Caching module graph hooks...
53 INFO: Caching module dependency graph...
61 INFO: running Analysis Analysis-00.toc
62 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable
  required by c:\python27\python.exe
115 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_acd031d7e1db7c28.manifest
167 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.9635_none ...
167 INFO: Found manifest C:\WINDOWS\WinSxS\Manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_08e2c157a83ed5da.manifest
168 INFO: Searching for file msvcr90.dll
168 INFO: Found file C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_08e2c157a83ed5da\msvcr90.dll
168 INFO: Searching for file msvcp90.dll
168 INFO: Found file C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_08e2c157a83ed5da\msvcp90.dll
168 INFO: Searching for file msvcm90.dll
168 INFO: Found file C:\WINDOWS\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_08e2c157a83ed5da\msvcm90.dll
219 INFO: Found C:\WINDOWS\WinSxS\Manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9635_none_acd031d7e1db7c28.manifest
219 INFO: Adding redirect Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 9635)
240 INFO: Analyzing C:\Users\MQiuj\PycharmProjects\pythonProject\20231207.py
951 INFO: Processing pre-safe import module hook   urllib3.packages.six.moves
2621 INFO: Processing module hooks...
2621 INFO: Loading module hook "hook-httplib.py"...
2622 INFO: Loading module hook "hook-encodings.py"...
2865 INFO: Loading module hook "hook-certifi.py"...
2874 INFO: Looking for ctypes DLLs
2874 INFO: Analyzing run-time hooks ...
2875 INFO: Including run-time hook 'pyi_rth_certifi.py'
2877 INFO: Looking for dynamic libraries
2930 INFO: Looking for eggs
2930 INFO: Using Python library C:\WINDOWS\system32\python27.dll
2930 INFO: Found binding redirects:
[BindingRedirect(name=u'Microsoft.VC90.CRT', language=None, arch=u'amd64', oldVersion=(9, 0, 21022, 8), newVersion=(9, 0, 30729, 9635), publicKeyToken=u'1fc8b3b9a1e18e3b')]
2933 INFO: Warnings written to C:\Users\MQiuj\PycharmProjects\pythonProject\build\20231207\warn-20231207.txt
2951 INFO: Graph cross-reference written to C:\Users\MQiuj\PycharmProjects\pythonProject\build\20231207\xref-20231207.html
2982 INFO: checking PYZ
2983 INFO: Building because toc changed
2983 INFO: Building PYZ (ZlibArchive) C:\Users\MQiuj\PycharmProjects\pythonProject\build\20231207\PYZ-00.pyz
3257 INFO: Building PYZ (ZlibArchive) C:\Users\MQiuj\PycharmProjects\pythonProject\build\20231207\PYZ-00.pyz completed successfully.
3288 INFO: checking PKG
3288 INFO: Building because toc changed
3288 INFO: Building PKG (CArchive) PKG-00.pkg
3384 INFO: Redirecting Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0, 30729, 9635)
4298 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
4299 INFO: Bootloader c:\python27\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.exe
4299 INFO: checking EXE
4300 INFO: Building because toc changed
4300 INFO: Building EXE from EXE-00.toc
4300 INFO: Appending archive to EXE C:\Users\MQiuj\PycharmProjects\pythonProject\dist\20231207.exe
4306 INFO: Building EXE from EXE-00.toc completed successfully.

  • 注:由于部分依賴沒有自動(dòng)掃描打入可執(zhí)行文件中,使用-p命令手動(dòng)指定依賴打入。

運(yùn)行

  • 點(diǎn)擊20231207.exe運(yùn)行,按照預(yù)期運(yùn)行:

總結(jié)

  • 本文介紹了 pyinstaller 工具的使用以及常用參數(shù),并結(jié)合實(shí)際案例進(jìn)行實(shí)戰(zhàn)將我們的 Pyhton 腳本打包為了 .exe 可執(zhí)行文件。

以上就是PyInstaller將Python腳本打包為.exe可執(zhí)行文件的步驟詳解的詳細(xì)內(nèi)容,更多關(guān)于PyInstaller Python腳本打包為.exe的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python?讀取?.gz?文件全過程

    Python?讀取?.gz?文件全過程

    這篇文章主要介紹了Python?讀取?.gz?文件全過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Python偏函數(shù)介紹及用法舉例詳解

    Python偏函數(shù)介紹及用法舉例詳解

    偏函數(shù)(Partial function)是Python的functools模塊提供的一個(gè)很有用的功能,它允許我們通過固定部分參數(shù)或關(guān)鍵字參數(shù)來創(chuàng)建一個(gè)新的函數(shù),這篇文章主要給大家介紹了關(guān)于Python偏函數(shù)介紹及用法舉例詳解的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Python操作MySQL數(shù)據(jù)庫9個(gè)實(shí)用實(shí)例

    Python操作MySQL數(shù)據(jù)庫9個(gè)實(shí)用實(shí)例

    這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫9個(gè)實(shí)用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 用Python做一個(gè)簡單的圖書管理系統(tǒng)

    用Python做一個(gè)簡單的圖書管理系統(tǒng)

    這篇文章主要介紹了用Python做一個(gè)簡單的圖書管理系統(tǒng),有“還書““借閱”“添加書籍”等功能,文中提供了部分實(shí)現(xiàn)代碼和解決思路,有一定的參考價(jià)值,需要的朋友快來一起看看吧
    2023-04-04
  • Python編寫檢測數(shù)據(jù)庫SA用戶的方法

    Python編寫檢測數(shù)據(jù)庫SA用戶的方法

    這篇文章主要介紹了Python編寫檢測數(shù)據(jù)庫SA用戶的方法,需要的朋友可以參考下
    2014-07-07
  • GitHub上值得推薦的8個(gè)python 項(xiàng)目

    GitHub上值得推薦的8個(gè)python 項(xiàng)目

    GitHub 無疑是代碼托管領(lǐng)域的先行者,Python 作為一種通用編程語言,已經(jīng)被千千萬萬的開發(fā)人員用來構(gòu)建各種有意思或有用的項(xiàng)目。以下我們會(huì)介紹一些使用 Python 構(gòu)建的GitHub上優(yōu)秀的項(xiàng)目。
    2020-10-10
  • Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程

    Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程

    xhEditor是基于jQuery的Web端文本編輯器,基本的圖片上傳等功能也都帶有,這里我們就來看一下Python的Flask站點(diǎn)中集成xhEditor文本編輯器的教程
    2016-06-06
  • Python存儲List數(shù)據(jù)到文件(text/csv/excel)幾種常見方法

    Python存儲List數(shù)據(jù)到文件(text/csv/excel)幾種常見方法

    在數(shù)據(jù)分析中經(jīng)常需要從csv格式的文件中存取數(shù)據(jù)以及將數(shù)據(jù)寫書到csv文件中,下面這篇文章主要給大家介紹了關(guān)于Python存儲List數(shù)據(jù)到文件(text/csv/excel)的幾種常見方法,需要的朋友可以參考下
    2024-02-02
  • Python中正則表達(dá)式的用法總結(jié)

    Python中正則表達(dá)式的用法總結(jié)

    今天小編就為大家分享一篇關(guān)于Python中正則表達(dá)式的用法總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python?存儲變量的幾種方法(推薦)

    python?存儲變量的幾種方法(推薦)

    這篇文章主要介紹了python?存儲變量的幾種方法,包括numpy?自帶方法,pandas?自帶方法,sklearn?的自帶方法和pickle?庫操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11

最新評論

江达县| 邳州市| 新营市| 大邑县| 广安市| 蓬安县| 维西| 讷河市| 嫩江县| 渑池县| 舟山市| 临猗县| 剑川县| 新丰县| 屏东县| 夏邑县| 普兰县| 阿拉善左旗| 黔西| 淄博市| 曲松县| 五寨县| 浦东新区| 邵阳市| 乐都县| 佛坪县| 巴彦县| 虞城县| 青州市| 太仓市| 西昌市| 兴文县| 杭州市| 丰县| 嘉黎县| 桂东县| 柏乡县| 都江堰市| 汕尾市| 金华市| 晴隆县|