日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Pyinstaller如何将资源文件一起打包至exe中

發布時間:2023/12/13 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 Pyinstaller如何将资源文件一起打包至exe中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本原理:Pyinstaller 可以將資源文件一起bundle到exe中,當exe在運行時,會生成一個臨時文件夾,程序可通過sys._MEIPASS訪問臨時文件夾中的資源

官方說明:https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation

測試案例功能描述,訪問資源文件夾res/a.txt,并打印其內容。實現方法如下:

源碼如下,比較簡單,resource_path方法說明了如何使用sys._MEIPASS變量來訪問臨時文件夾中的資源

#coding:utf-8
import sys
import os

#生成資源文件目錄訪問路徑
def resource_path(relative_path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

#訪問res文件夾下a.txt的內容
filename = resource_path(os.path.join("res","a.txt"))
print(filename)
with open(filename) as f:
    lines = f.readlines()
    print(lines)
    f.close()

結下來介紹如何生成exe

首先需要生成spec文件,pyi-makespec -F test.py (如果要添加Icon等可以在這里就使用pyi-makespec --icon abc.jpg -F test.py語句生成spec文件)

編輯spec文件,在datas選項中說明需要將哪些文件加入exe,在零時文件夾中命名成什么

以下圖為例,意思將test.py當前目錄下的res目錄(及其目錄中的文件)加入目標exe中,在運行時放在零時文件的根目錄下,名稱為res

生成EXE文件,pyinstaller -F test.spec

運行生成的EXE,可以看到資源生成的臨時文件夾路徑

總結

以上是生活随笔為你收集整理的Pyinstaller如何将资源文件一起打包至exe中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。