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

PyInstaller運(yùn)行原理及常用操作詳解

 更新時間:2020年06月13日 14:28:09   作者:_夕顏  
這篇文章主要介紹了PyInstaller運(yùn)行原理及常用操作詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

pyinstaller 屬于Python第三方庫,使用前需先安裝

# 首先安裝pyinstaller
pip install pyinstaller

PyInstaller生成可執(zhí)行程序

# PyInstaller 工具的命令語法如下:

# 1、第一種
pyinstaller options ~/myproject/source/myscript.py

# 2、第一種
pyinstaller "C:\Documents and Settings\project\myscript.spec"

PyInstaller 支持的常用選項(xiàng)

-h,--help 查看該模塊的幫助信息
-F,-onefile

dist中產(chǎn)生單個的可執(zhí)行文件   

eg:pyinstaller -F demo.py

-D,--onedir

產(chǎn)生一個目錄(包含多個文件)作為可執(zhí)行程序   

eg:pyinstaller -D demo.py

-a,--ascii 不包含 Unicode 字符集支持
-d,--debug 產(chǎn)生 debug 版本的可執(zhí)行文件
-w,--windowed,--noconsolc

指定程序運(yùn)行時不顯示命令行窗口(僅對 Windows 有效)   

eg:pyinstaller -w demo.py

-c,--nowindowed,--console

指定使用命令行窗口運(yùn)行程序(僅對 Windows 有效)    

eg:pyinstaller -c demo.py

-o DIR,--out=DIR 指定 spec 文件的生成目錄。如果沒有指定,則默認(rèn)使用當(dāng)前目錄來生成 spec 文件
-p DIR,--path=DIR

設(shè)置 Python 導(dǎo)入模塊的路徑(和設(shè)置 PYTHONPATH 環(huán)境變量的作用相似)。也可使用路徑分隔符(Windows 使用分號,Linux 使用冒號)來分隔多個路徑

eg:pyinstaller -p E:\python\Lib\site-packages demo.py

-n NAME,--name=NAME 指定項(xiàng)目(產(chǎn)生的 spec)名字。如果省略該選項(xiàng),那么第一個腳本的主文件名將作為 spec 的名字

1、創(chuàng)建一個 app 目錄,在該目錄下創(chuàng)建一個 入口app.py 文件

# 進(jìn)入該app目錄內(nèi),執(zhí)行以下語法
pyinstaller -F app.py

當(dāng)生成完成后,將會在此 app 目錄下看到多了一個 dist 目錄,并在該目錄下看到有一個 app.exe 文件,這就是使用 PyInstaller 工具生成的 exe 程序。

在命令行窗口中進(jìn)入 dist 目錄下,在該目錄執(zhí)行 app.exe ,將會看到該程序執(zhí)行結(jié)果。

注:若程序沒有可視化界面,不能雙擊執(zhí)行程序

2、創(chuàng)建一個 app 目錄,在該目錄下創(chuàng)建一個 入口app.py 文件

# 進(jìn)入該app目錄內(nèi),執(zhí)行以下語法
pyinstaller -D app.py

執(zhí)行上面命令,將看到詳細(xì)的生成過程。當(dāng)生成完成后,將會在 app 目錄下看到多了一個 dist 目錄,并在該目錄下看到有一個 app 子目錄,在該子目錄下包含了大量 .dll 文件和 .pyz 文件,它們都是 app.exe 程序的支撐文件。在命令行窗口中運(yùn)行該 app.exe 程序,同樣可以看到與前一個 app.exe 程序相同的輸出結(jié)果。

3、高級用法

當(dāng)有特殊需求,比如打包圖片資源文件時,就必須用到它的高級用法。

首先得了解spec文件,簡而言之,spec文件就是一份告訴pyinstaller如何打包的配置文件。
可以通過pyi-makespec demo.py來生成demo.spec文件。其內(nèi)容如下:

# -*- mode: python -*-

block_cipher = None

resources = (("inspurer.db", "."), ("dlib_face_recognition_resnet_model_v1.dat", "."),
 ("shape_predictor_68_face_landmarks.dat", "."), ("close_logcat.png", ".")
 , ("open_logcat.png", "."), ("finish_register.png", "."), ("new_register.png", ".")
 , ("start_punchcard.png", "."), ("end_puncard.png", "."), ("index.png", "."))

a = Analysis(['workAttendanceSystem.py'],
       pathex=['C:\\Users\\lenovo\\Desktop\\test\\python'],
       binaries=[],
       datas=resources,
       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,
     [],
     exclude_binaries=True,
     name='workAttendanceSystem',
     debug=False,
     bootloader_ignore_signals=False,
     strip=False,
     upx=True,
     console=True )
coll = COLLECT(exe,
        a.binaries,
        a.zipfiles,
        a.datas,
        strip=False,
        upx=True,
        name='workAttendanceSystem')

對于上面這個文件,需要注意兩點(diǎn):

除了resources配置是我添加修改之外,其余全是自動生成,這個配置是用來添加資源文件的。

pathex是工程的根目錄。

生成并配置好spec文件后,我們可以通過pyinstaller demo.spec來執(zhí)行打包任務(wù)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解python中文編碼問題

    詳解python中文編碼問題

    一直以來python中文編碼是個及其頭大的問題,需要好好學(xué)習(xí)下,我用python為例,簡單介紹下python編程時如何處理好中文編碼的問題,感興趣的朋友們可以參考下
    2021-06-06
  • Python中深淺拷貝的區(qū)別詳細(xì)分析

    Python中深淺拷貝的區(qū)別詳細(xì)分析

    深拷貝和淺拷貝都是對原對象的拷貝,都會生成一個看起來相同的對象,下面這篇文章主要給大家介紹了關(guān)于Python中深淺拷貝的區(qū)別的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Python中os.path模塊的8個神奇函數(shù)分享

    Python中os.path模塊的8個神奇函數(shù)分享

    在Python編程中,os.path模塊是一個非常重要的模塊,它提供了用于處理文件路徑和目錄的函數(shù),本文將介紹os.path模塊中最常用的8個內(nèi)置函數(shù),需要的可以參考下
    2023-11-11
  • Python制作爬蟲采集小說

    Python制作爬蟲采集小說

    本文給大家分享的是使用Python制作爬蟲采集小說的代碼,非常的簡單實(shí)用,雖然還是有點(diǎn)瑕疵,大家一起改改,共同進(jìn)步
    2015-10-10
  • Python高級用法總結(jié)

    Python高級用法總結(jié)

    Python很棒,它有很多高級用法值得細(xì)細(xì)思索,學(xué)習(xí)使用。本文將根據(jù)日常使用,總結(jié)介紹Python的一組高級特性,包括:列表推導(dǎo)式、迭代器和生成器、裝飾器
    2018-05-05
  • Python操作MySQL數(shù)據(jù)庫的基本方法(查詢與更新)

    Python操作MySQL數(shù)據(jù)庫的基本方法(查詢與更新)

    在工作中我們需要經(jīng)常對數(shù)據(jù)庫進(jìn)行操作,比如 Oracle、MySQL、SQL Sever等,這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫的基本方法包括了數(shù)據(jù)查詢與數(shù)據(jù)更新(新增、刪除、修改),需要的朋友可以參考下
    2023-09-09
  • 如何用python多次調(diào)用exe文件運(yùn)行不同的結(jié)果

    如何用python多次調(diào)用exe文件運(yùn)行不同的結(jié)果

    有個C++項(xiàng)目是讀取配置參數(shù)文件并打印對應(yīng)的結(jié)果,后來需要多次修改配置文件并運(yùn)行,于是想到寫個python腳本執(zhí)行這一過程,今天通過本文給大家分享python多次調(diào)用exe文件運(yùn)行不同的結(jié)果,感興趣的朋友一起看看吧
    2023-05-05
  • Python性能調(diào)優(yōu)的十個小技巧總結(jié)

    Python性能調(diào)優(yōu)的十個小技巧總結(jié)

    大家好,今天這篇文章關(guān)于Python性能調(diào)優(yōu)的10個小技巧,每天花5-10分鐘閱讀我的文章,對你技術(shù)提升一定會有幫助。喜歡記得收藏以防迷路
    2021-11-11
  • Flask搭建Web應(yīng)用程序的方法示例

    Flask搭建Web應(yīng)用程序的方法示例

    Flask是一個使用Python編寫的輕量級Web應(yīng)用框架,本文我們將介紹一個使用Flask逐步搭建Web應(yīng)用程序的簡單入門示例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • 利用python實(shí)現(xiàn)微信頭像加紅色數(shù)字功能

    利用python實(shí)現(xiàn)微信頭像加紅色數(shù)字功能

    通過Python實(shí)現(xiàn)將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數(shù)字,類似于微信未讀信息數(shù)量那種提示效果。下面通過本文給大家分享python實(shí)現(xiàn)微信頭像加紅色數(shù)字功能,感興趣的朋友一起看看吧
    2018-03-03

最新評論