欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python用PyInstaller打包成windows可執(zhí)行的exe(細(xì)致版)

 更新時(shí)間:2025年04月11日 08:54:31   作者:小軟件大世界  
PyInstaller的基本功能是將Python腳本打包成可執(zhí)行文件,這意味著用戶無(wú)需安裝Python環(huán)境,就能運(yùn)行打包后的程序,這篇文章主要介紹了python如何用PyInstaller打包成windows可執(zhí)行exe的相關(guān)資料,需要的朋友可以參考下

前言

在開(kāi)發(fā) Python 應(yīng)用程序時(shí),有時(shí)我們需要將腳本打包成獨(dú)立的可執(zhí)行文件(.exe),以便于在沒(méi)有安裝 Python 環(huán)境的計(jì)算機(jī)上運(yùn)行。本文將介紹如何使用 PyInstaller 工具將 Python 本打包成 Windows 可執(zhí)行文件。

1. 安裝 PyInstaller

首先,你需要安裝 PyInstaller??梢酝ㄟ^(guò) pip 來(lái)安裝:

pip install pyinstaller

2. 準(zhǔn)備你的 Python 腳本

假設(shè)你有一個(gè)名為 myapp.py 的 Python 腳本,內(nèi)容如下:

import tkinter as tk</code>
<code>def on_button_click():</code><code>    label.config(text="Hello, World!")</code>
<code>root = tk.Tk()</code><code>root.title("My App")</code>
<code>label = tk.Label(root, text="Welcome to My App")</code><code>label.pack(pady=20)</code>
<code>button = tk.Button(root, text="Click Me", command=on_button_click)</code><code>button.pack(pady=10)</code>
<code>root.mainloop()

這個(gè)腳本使用 tkinter 庫(kù)創(chuàng)建了一個(gè)簡(jiǎn)單的 GUI 應(yīng)用程序。

3. 使用 PyInstaller 打包腳本

3.1 基本打包

打開(kāi)命令行或終端,導(dǎo)航到包含 myapp.py 的目錄,然后運(yùn)行以下命令:

pyinstaller myapp.py

這將生成一個(gè) dist 目錄,其中包含可執(zhí)行文件和其他必要的文件。

3.2 單文件模式

為了生成一個(gè)單獨(dú)的可執(zhí)行文件,可以使用 --onefile 參數(shù):

pyinstaller --onefile myapp.py

3.3 設(shè)置圖標(biāo)

如果你希望給生成的可執(zhí)行文件設(shè)置圖標(biāo),可以使用 --icon 參數(shù)。假設(shè)你有一個(gè)名為 myicon.ico 的圖標(biāo)文件:

pyinstaller --onefile --icon=myicon.ico myapp.py

3.4 隱藏控制臺(tái)窗口

對(duì)于 GUI 應(yīng)用程序,你可能不希望顯示控制臺(tái)窗口??梢允褂?--noconsole 參數(shù)來(lái)隱藏控制臺(tái)窗口:

pyinstaller --onefile --noconsole --icon=myicon.ico myapp.py

3.5 添加數(shù)據(jù)文件

如果你的應(yīng)用程序需要額外的數(shù)據(jù)文件,比如配置文件或資源文件,可以使用 --add-data 參數(shù)。例如,假設(shè)你有一個(gè)名為 config.ini 的配置文件:

pyinstaller --onefile --noconsole --icon=myicon.ico --add-data "config.ini;." myapp.py

這里的 config.ini;. 表示將 config.ini 文件復(fù)制到可執(zhí)行文件所在目錄的根目錄下。

4. 使用 .spec 文件進(jìn)行高級(jí)配置

對(duì)于更復(fù)雜的項(xiàng)目,你可能需要更多的控制權(quán)。PyInstaller 提供了 .spec 文件來(lái)配置構(gòu)建過(guò)程。

4.1 生成 .spec 文件

首次運(yùn)行 PyInstaller 時(shí),它會(huì)自動(dòng)生成一個(gè) .spec 文件。例如:

pyinstaller myapp.py

這將在當(dāng)前目錄下生成一個(gè) myapp.spec 文件。

4.2 編輯 .spec 文件

打開(kāi) myapp.spec 文件,你可以看到類似以下內(nèi)容:

# -*- mode: python ; coding: utf-8 -*-</code>
<code>block_cipher = None</code>
<code>a = Analysis(</code><code>    ['myapp.py'],</code><code>    pathex=[],</code><code>    binaries=[],</code><code>    datas=[],</code><code>    hiddenimports=[],</code><code>    hookspath=[],</code><code>    runtime_hooks=[],</code><code>    excludes=[],</code><code>    win_no_prefer_redirects=False,</code><code>    win_private_assemblies=False,</code><code>    cipher=block_cipher,</code><code>)</code><code>pyz = PYZ(a.pure, a.zipped_data,</code><code>             cipher=block_cipher)</code><code>exe = EXE(</code><code>    pyz,</code><code>    a.scripts,</code><code>    [],</code><code>    exclude_binaries=True,</code><code>    name='myapp',</code><code>    debug=False,</code><code>    strip=False,</code><code>    upx=True,</code><code>    console=False,</code><code>    icon='myicon.ico',</code><code>)</code><code>coll = COLLECT(</code><code>    exe,</code><code>    a.binaries,</code><code>    a.zipfiles,</code><code>    a.datas,</code><code>    strip=False,</code><code>    upx=True,</code><code>    upx_exclude=[],</code><code>    name='myapp',</code><code>)

你可以在這個(gè)文件中進(jìn)行各種配置,例如添加數(shù)據(jù)文件、排除不必要的模塊等。

4.3 使用 .spec 文件構(gòu)建

保存并關(guān)閉 .spec 文件后,使用以下命令進(jìn)行構(gòu)建:

pyinstaller myapp.spec

5.創(chuàng)建虛擬環(huán)境,減少打包文件文件大小

一般打包時(shí),會(huì)將一些不必要的庫(kù)順帶一并打包進(jìn)程序中,這會(huì)造成打包后的文件非常大,因此可以通過(guò)安裝一個(gè)虛擬環(huán)境來(lái)進(jìn)行打包。

復(fù)制這個(gè)目錄。

然后,我們需要安裝兩個(gè)依賴包:

pip install virtualenv</code><code>pip install virtualenvwrapper-win

如果網(wǎng)絡(luò)不佳,可使用國(guó)內(nèi)的鏡像庫(kù)進(jìn)行安裝:

pip install virtualenv -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package

然后創(chuàng)建虛擬環(huán)境:

mkvirtualenv -p="C:\Users\jyw\AppData\Local\Programs\Python\Python311\python.exe" pyenv311

打開(kāi)這個(gè)虛擬環(huán)境:

workon pyenv311

可以看到里面只有基本的庫(kù)。

然后我們?nèi)ミ\(yùn)行py文件,安裝缺失的必要庫(kù),運(yùn)行成功后再打包即可。

若要?jiǎng)h除虛擬環(huán)境,使用 rmvirtualenv 命令刪除虛擬環(huán)境:例如,要?jiǎng)h除名為 pyenv311 的虛擬環(huán)境,可以運(yùn)行以下命令:

rmvirtualenv pyenv311

6. 測(cè)試生成的可執(zhí)行文件

構(gòu)建完成后,進(jìn)入 dist 目錄,運(yùn)行生成的可執(zhí)行文件:

cd dist</code><code>myapp.exe

確保應(yīng)用程序能夠正常運(yùn)行,并且所有功能都能正常使用。

7. 分發(fā)可執(zhí)行文件

將 dist 目錄中的可執(zhí)行文件及其依賴文件(如果有)打包成一個(gè)壓縮包,發(fā)給需要用的人即可啦??!

總結(jié)

到此這篇關(guān)于python用PyInstaller打包成windows可執(zhí)行exe的文章就介紹到這了,更多相關(guān)python PyInstaller打包成exe內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas針對(duì)excel處理的實(shí)現(xiàn)

    pandas針對(duì)excel處理的實(shí)現(xiàn)

    這篇文章主要介紹了pandas針對(duì)excel處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python3爬蟲中多線程的優(yōu)勢(shì)總結(jié)

    python3爬蟲中多線程的優(yōu)勢(shì)總結(jié)

    在本篇文章里小編給大家分享了一篇關(guān)于python3爬蟲中多線程的優(yōu)勢(shì)總結(jié)內(nèi)容,需要的朋友們可以參考學(xué)習(xí)下。
    2020-11-11
  • python-docx 頁(yè)面設(shè)置詳解

    python-docx 頁(yè)面設(shè)置詳解

    今天小編就為大家分享一篇python docx 中頁(yè)面的設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-10-10
  • 使用PyCharm調(diào)試程序?qū)崿F(xiàn)過(guò)程

    使用PyCharm調(diào)試程序?qū)崿F(xiàn)過(guò)程

    這篇文章主要介紹了使用PyCharm調(diào)試程序?qū)崿F(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python接口測(cè)試文件上傳實(shí)例解析

    Python接口測(cè)試文件上傳實(shí)例解析

    這篇文章主要介紹了Python接口測(cè)試文件上傳實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 利用Python實(shí)現(xiàn)K-Means聚類的方法實(shí)例(案例:用戶分類)

    利用Python實(shí)現(xiàn)K-Means聚類的方法實(shí)例(案例:用戶分類)

    k-means是發(fā)現(xiàn)給定數(shù)據(jù)集的k個(gè)簇的算法,也就是將數(shù)據(jù)集聚合為k類的算法,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)K-Means聚類的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Python使用MONGODB入門實(shí)例

    Python使用MONGODB入門實(shí)例

    這篇文章主要介紹了Python使用MONGODB的方法,實(shí)例分析了Python使用MONGODB的啟動(dòng)、安裝及使用的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解Python中for循環(huán)的使用方法

    詳解Python中for循環(huán)的使用方法

    這篇文章主要介紹了Python中for循環(huán)的使用方法,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python超簡(jiǎn)單容易上手的畫圖工具庫(kù)(適合新手)

    Python超簡(jiǎn)單容易上手的畫圖工具庫(kù)(適合新手)

    這篇文章主要給大家介紹了關(guān)于Python超簡(jiǎn)單容易上手的畫圖工具庫(kù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 舉例講解Python中metaclass元類的創(chuàng)建與使用

    舉例講解Python中metaclass元類的創(chuàng)建與使用

    在Python中我們用type函數(shù)可以動(dòng)態(tài)地創(chuàng)建一個(gè)元類,同樣也可以用__metaclass__屬性來(lái)指定一個(gè)元類,接下來(lái)我們就來(lái)具體舉例講解Python中metaclass元類的創(chuàng)建與使用
    2016-06-06

最新評(píng)論