python资源文件嵌入exe_pyinstaller将资源文件打包进exe中

在网上看了很多博客,终于找到了符合自己智商可理解的打包资源文件方法,现引用如下

https://www.cnblogs.com/darcymei/p/9397173.html

https://blog.csdn.net/sinat_27382047/article/details/81304065

"""

终于把资源文件加载进去了,就是当exe文件移植后,它运行的时候会产生一个临时文件夹,把资源文件存储到临时文件夹内才可以加载移植,

在我的软件主程序aa.py中增加了一段代码,就是实现相对路径到绝对路径的抓换。

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()

这段代码太重要了,好好理解,一定要加到主程序中去。

第一步:打包生成spec文件

pyinstaller -Fw aa.py -i favicon.ico -p GEthernet.py -p vlanifghout.py

第二部:打包生成exe

pyinstaller -F aa.spec

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

block_cipher = None

a = Analysis(['aa.py'],

pathex=['GEthernet.py', 'vlanifghout.py', 'D:\\pythonGUIProject'],

binaries=[],

datas=[('D:\\pythonGUIProject\\time.jpg','time.jpg'),('D:\\pythonGUIProject\\favicon.ico','favicon.ico')],

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='aa',

debug=False,

bootloader_ignore_signals=False,

strip=False,

upx=True,

console=False )

coll = COLLECT(exe,

a.binaries,

a.zipfiles,

a.datas,

strip=False,

upx=True,

upx_exclude=[],

name='aa')

"""

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值