国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pyinstaller通過(guò)spec文件打包py程序

這篇具有很好參考價(jià)值的文章主要介紹了pyinstaller通過(guò)spec文件打包py程序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Pyinstaller

pyinstaller是python的一個(gè)第三方模塊,使用它可以將python程序打包為可執(zhí)行文件,實(shí)現(xiàn)打包后的程序在沒(méi)有python環(huán)境的機(jī)器上也可以運(yùn)行。pyinstaller的安裝方式可通過(guò):pip installer pyinstaller

通常我們打包程序時(shí),會(huì)遇到兩種情況:

情況一,打包一個(gè)python腳本文件;

情況二,打包一個(gè)python項(xiàng)目程序(包含多個(gè)文件夾、py文件,以及相關(guān)資源文件)

打包環(huán)境

  • win10,64位
  • python3.7
  • pyinstaller3.6

pyInstaller提供了兩種不同的打包操作方式,可以實(shí)現(xiàn)上述兩種情況下的打包需求。下面分別描述之。

打包一個(gè)py腳本程序

對(duì)于只有一個(gè)python腳本的簡(jiǎn)單程序,打包操作很方便,直接使用命令行的方式,輸入相關(guān)指令即可。

對(duì)于一個(gè)攝氏溫度轉(zhuǎn)華氏溫度的小程序(temp.py),我們可以這樣做:

# 攝氏溫度轉(zhuǎn)華氏溫度

temp = input("請(qǐng)輸入攝氏溫度:")
new_temp = 9/5 * int(temp) + 32
print(f"華氏溫度為:{new_temp}F")
q = input("按任意鍵退出:")

首先,打開(kāi)終端cmd, 進(jìn)入temp.py文件所在的路徑,輸入指令:pyinstaller -F temp.py

打包結(jié)束后,將在當(dāng)前目錄下生成兩個(gè)文件夾(bulid、dist)和一個(gè)文件temp.spec,現(xiàn)在不需要理會(huì)文件夾bulid和文件temp.spec

我們需要的打包后的可執(zhí)行文件在文件夾dist中,雙擊即可運(yùn)行,實(shí)現(xiàn)打包。

補(bǔ)充:如果想修改可執(zhí)行文件的圖標(biāo),使用指令:pyinstaller -i icon.ico -F temp.py

打包結(jié)束后,在dist文件夾下降出現(xiàn)temp.exe。你可能會(huì)發(fā)現(xiàn)它的圖標(biāo)并不是你想要的,這沒(méi)有關(guān)系,你將它重命名或者拷貝到其他地方,你會(huì)發(fā)現(xiàn)它的圖標(biāo)立刻變成你期待的樣子,祝你好運(yùn)。

打包一個(gè)py項(xiàng)目程序

對(duì)于常用到的py項(xiàng)目程序,包含許多文件夾和py文件,以及配套的資源文件。這種情況下在終端中使用指令的方式打包程序本身也是可以實(shí)現(xiàn)的,但是此時(shí)打包操作就變得非常復(fù)雜,它需要你理解不同指令參數(shù)的確切意思,時(shí)不時(shí)你將入坑爬不起來(lái),苦不堪言。 這段時(shí)間使用pygame寫(xiě)了一個(gè)像素鳥(niǎo)的游戲,想分享給別人體驗(yàn),就使用了pyinstaller將程序打包成exe文件。這里分享給大家,希望對(duì)你能有所幫助。

這種情況下,一個(gè)簡(jiǎn)單的打包方式,就是通過(guò)pyinstaller提供的spec文件實(shí)現(xiàn)程序打包。

下面通過(guò)一個(gè)基于pygame實(shí)現(xiàn)的FlappyBird介紹該項(xiàng)目的打包流程。

該項(xiàng)目包含六個(gè)文件夾,其中:bin、conf、core包含所有的python腳本文件,項(xiàng)目入口程序在bin\setup.py,所有音頻文件在audios文件夾下,所有的字體文件在fonts文件夾下,所有的圖片文件在images文件夾下。

第一步:打開(kāi)終端進(jìn)入FlappyBird路徑下,輸入指令:pyinstaller -F bin\setup.py,回車(chē),程序結(jié)束后,發(fā)現(xiàn)當(dāng)前目錄下生成兩個(gè)文件夾(bulid、dist)和一個(gè)文件setup.spec,現(xiàn)在刪除兩個(gè)文件夾,只保留setup.spec文件。

setup.spec

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['bin\\setup.py'],	# 此列表存放項(xiàng)目設(shè)計(jì)的所有python腳本文件
             pathex=['C:\\Users\\15057\\Desktop\\FlappyBird'], # 此列表為項(xiàng)目絕對(duì)路徑
             binaries=[],
             datas=[],		# 此列表存放所有資源文件,每個(gè)文件是一個(gè)2元組元素
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='setup',		# 打包程序的名字
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )	
# 此處console=True表示,打包后的可執(zhí)行文件雙擊運(yùn)行時(shí)屏幕會(huì)出現(xiàn)一個(gè)cmd窗口,不影響原程序運(yùn)行
# 如果想要修改程序圖標(biāo),使用在EXE()中加入 icon='xxxxx', 切記:絕對(duì)路徑

第二步:修改setup.spec文件,修改后的文件如下:

修改位置:

  • 添加py_files列表,包含項(xiàng)目需要的所有python腳本
  • 添加add_files列表,包含涉及到的所有資源文件,每個(gè)文件是2元組的形式存放
  • name='FlappBird', 制定可執(zhí)行程序名字
  • console=False, 制定可執(zhí)行程序執(zhí)行時(shí)不顯示控制臺(tái)窗口
  • icon='C:\Users\15057\Desktop\FlappyBird\images\flappy.ico', 設(shè)置程序圖標(biāo),ico格式文件(16*16)
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

py_files = [
    'bin\\setup.py',
    'conf\\settings.py',
    'core\\main.py',
    'core\\base.py',
    'core\\bird.py',
    'core\\pipe.py',
    'core\\score.py',
]

add_files = [
    ('fonts\\font.ttf', 'fonts'),
    ('images\\*.png', 'images'),
    ('images\\flappy.ico', 'images'),
    ('audios\\*.wav', 'audios'),
]

a = Analysis(py_files,
             pathex=['C:\\Users\\15057\\Desktop\\FlappyBird'],
             binaries=[],
             datas=add_files,
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='FlappBird',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False,
          icon='C:\\Users\\15057\\Desktop\\FlappyBird\\images\\flappy.ico' )

第三步:執(zhí)行setup.spec文件。項(xiàng)目路徑下輸入指令:pyinstaller -F setup.spec,

回車(chē),程序結(jié)束后,新增dist文件夾,且該文件夾下新增FlappyBird.exe,最終,打包結(jié)束。

補(bǔ)充

打包,可以使用許多指令,指令都差不多,不同的是使用不用的參數(shù),如?-F、-i等,不同的參數(shù)有不同的意義。這些可以在網(wǎng)上找到相關(guān)解釋說(shuō)明,這里就贅述了。

值得說(shuō)明的一點(diǎn)是,使用spec文件打包程序時(shí),使用-F或者使用-w,生成的spec文件內(nèi)容有一點(diǎn)點(diǎn)不同。

這里大家注意即可,因?yàn)槭褂?code>-F打包時(shí)默認(rèn)只生成一個(gè)單獨(dú)的可執(zhí)行文件,如這里的FlappyBird.exe; 而使用-w打包時(shí)會(huì)生成一個(gè)文件夾,該文件夾里面包含一些庫(kù)文件和FlappyBird.exe,這里的exe需要依賴(lài)這些庫(kù)文件,即資源文件。在生成的spec文件中,會(huì)多一點(diǎn)內(nèi)容。但是基本不影響打包流程和打包思路。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-432884.html

到了這里,關(guān)于pyinstaller通過(guò)spec文件打包py程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Python小工具】解決Python的Pyinstaller將.py文件打包成.exe可執(zhí)行文件后文件過(guò)大的問(wèn)題

    在文章 【Python小項(xiàng)目】Python的GUI庫(kù)Tkinter實(shí)現(xiàn)隨機(jī)點(diǎn)名工具或抽獎(jiǎng)工具并封裝成.exe可執(zhí)行文件中我們實(shí)現(xiàn)了一個(gè)python小項(xiàng)目的制作并將其打包成了.exe可執(zhí)行文件。但是,當(dāng)我們查看了一下文件大小后,好家伙,一百多行代碼打包完竟然有242M。于是,我們靜下心來(lái)思考,是不

    2024年02月10日
    瀏覽(29)
  • pyinstaller打包exe時(shí)報(bào)錯(cuò)問(wèn)題記錄[makespec options not valid when a.spec file is given]

    一、簡(jiǎn)介 最近用pyautogui庫(kù)寫(xiě)了一個(gè)自動(dòng)化操作的小程序,為了提高識(shí)別效率,使用了confidence參數(shù),代碼為 xy = pyautogui.locateCenterOnScreen(p,grayscale= False,confidence=0.8) ,其中p為待識(shí)別圖片參數(shù),confidence:表示灰度值。程序完成后運(yùn)行沒(méi)有異常,然后封裝時(shí)出現(xiàn)一些問(wèn)題,下面列出

    2024年02月15日
    瀏覽(24)
  • python - 安裝pyqt5模塊,PyCharm配置QtDesigner/Pyuic/Pyrcc,ui轉(zhuǎn)py文件,圖片轉(zhuǎn)ico/icns格式,pyinstaller/py2app打包代碼

    window配置Python+PyQt5+QtDesigner+PyUic+PyRcc(最全安裝教程):https://blog.csdn.net/baidu_35145586/article/details/108110236 MacOS配置Pycharm+Python+PyQt5+QtDesigner+PyUic+PyRcc: https://blog.csdn.net/lkhk2008/article/details/116019386 QtDesigner工具的使用(界面與業(yè)務(wù)邏輯分離實(shí)現(xiàn)):https://blog.csdn.net/weixin_62094306/art

    2024年02月03日
    瀏覽(25)
  • 【python】之pyinstaller模塊,python程序打包成一個(gè)可執(zhí)行exe 文件(超詳細(xì))!

    【python】之pyinstaller模塊,python程序打包成一個(gè)可執(zhí)行exe 文件(超詳細(xì))!

    PyInstaller是一個(gè)在Windows、GNU/Linux、macOS等平臺(tái)下將Python程序凍結(jié)(打包)為獨(dú)立可執(zhí)行文件的工具, 用于在未安裝Python的平臺(tái)上執(zhí)行Python編寫(xiě)的應(yīng)用程序 使用pip接口進(jìn)行安裝 1.打開(kāi)命令行: 切換到要轉(zhuǎn)換的python文件路徑,輸入上述指令。 (1)-F: 只生成一個(gè)單個(gè)文件(只有一個(gè)

    2024年02月12日
    瀏覽(22)
  • 用 Pyinstaller 模塊將 Python 程序打包成 exe 文件(全網(wǎng)最全面最詳細(xì),萬(wàn)字詳述)

    用 Pyinstaller 模塊將 Python 程序打包成 exe 文件(全網(wǎng)最全面最詳細(xì),萬(wàn)字詳述)

    目錄 一、打包前置知識(shí) 1.1 什么是 exe 可執(zhí)行文件? 1.2 為什么要將 Python 程序打包為 exe 可執(zhí)行文件? 1.3 為什么 Python 程序不能直接運(yùn)行呢? 1.4 我們用什么來(lái)打包 Python 文件呢?? 1.5 打包有哪幾種分類(lèi)呢? 二、打包的方法 2.1 簡(jiǎn)單打包 2.1.1 前置 2.1.2 直接打包 2.1.3 稍微“加

    2024年02月04日
    瀏覽(29)
  • Python使用最新版pyinstaller將項(xiàng)目或程序打包成exe或者mac中的可執(zhí)行文件

    Python使用最新版pyinstaller將項(xiàng)目或程序打包成exe或者mac中的可執(zhí)行文件

    pyinstaller 能夠在 Windows、Linux、Mac 等操作系統(tǒng)下將 Python 源文件打包,通過(guò)對(duì)源文件打包, Python 程序可以在沒(méi)有安裝 Python 的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+??梢栽?Windows、Mac 和 Linux 上使用,但是并不是跨平臺(tái)的,

    2024年02月08日
    瀏覽(30)
  • Python文件打包(pyinstaller,nuitka)

    ##背景:最近用Pyqt5編寫(xiě)界面后考慮到一些用戶(hù)沒(méi)有程序的運(yùn)行環(huán)境,故而需要打包為exe程序提供給用戶(hù)使用,在經(jīng)過(guò)一番資料的查詢(xún)以及踩坑后,寫(xiě)下了這篇博客,目前主要有兩種主流的方法。分別是使用Pyinstaller與Nuitka進(jìn)行打包。下面分享一下兩種方法的具體使用與心得。

    2024年02月16日
    瀏覽(31)
  • Python3.9使用最新版pyinstaller將項(xiàng)目或程序打包成exe或者mac中的可執(zhí)行文件

    Python3.9使用最新版pyinstaller將項(xiàng)目或程序打包成exe或者mac中的可執(zhí)行文件

    pyinstaller 能夠在 Windows、Linux、Mac 等操作系統(tǒng)下將 Python 源文件打包,通過(guò)對(duì)源文件打包, Python 程序可以在沒(méi)有安裝 Python 的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平臺(tái)的,

    2024年02月09日
    瀏覽(25)
  • 【Python】Pyinstaller打包Linux運(yùn)行文件,暴露配置文件

    Pyinstaller可以將python程序打包成可執(zhí)行文件,在windows上是exe文件,在linux上是二進(jìn)制可執(zhí)行文件。 工作中有需求是把本地python工程打包成后臺(tái)可運(yùn)行的服務(wù),考慮到部署環(huán)境的不同,可以使用docker鏡像的方式,也可以使用pyinstaller打包成可執(zhí)行文件: docker鏡像的好處是運(yùn)行起

    2024年02月05日
    瀏覽(18)
  • Python PyInstaller將程序打包為exe程序

    Python PyInstaller將程序打包為exe程序

    1.執(zhí)行 pip install pyinstaller,結(jié)果如下圖? 2.然后執(zhí)行 pyinstaller -F -w Hello.py 執(zhí)行完之后會(huì)產(chǎn)生兩個(gè)目錄 在dist目錄下就是可執(zhí)行文件,雙擊即可看到效果

    2024年02月04日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包