怎样将只有一张图片与需要引用这张图片的py文件脚本代码打包起来?

本文介绍了如何将代码打包成应用程序,并添加ico格式的应用图标。作者通过在线转换工具处理图标,并编写Python脚本将图片转为py文件以嵌入到应用中。在导入py图片文件后,遇到脚本无法找到图片的问题,作者意识到需修改脚本中对图片的引用。这是一个针对Python初学者关于应用打包和资源处理的教程。
摘要由CSDN通过智能技术生成

本只想将我写的代码打包成应用程序:

①突然心血来潮想给应用程序添加一个应用图标:

问题1:

但是应用程序的图标只能是ico格式的,因此我的解决办法是去网站转化

结果成功:

转化成功了使用cmd命令可以成功转为应用图标了,具体命令须在脚本与图标文件夹里面的路径写入:pyinstaller -i a.ico 
2.由于我写的代码有图片在内

问题2:

因此需要另外自行创建一个py文件再写一段代码将图片转化成py文件

具体代码如下(参考这位博主的:https://blog.csdn.net/a861357276/article/details/107205604)

# coding:utf-8
import base64
def img_trans_py(img):
    open_pic = open(f"{img}", 'rb')
    b64str = base64.b64encode(open_pic.read())
    open_pic.close()
    write_data = 'img = "%s"' % b64str.decode()
    #解码后方可改后缀名
    f = open('%s.py' % img.replace('.', '_'), 'w+')
    f.write(write_data)   #写入原来的图片中
    f.close()
if __name__ == '__main__':
    pics = ["图片名称.png", "图片名称.png", "图片名称.png"]  #批量转化 只需要改此处,将你的图片文件路径写入
    for i in pics:
        img_trans_py(i)
    print("完成所有图片转化!")


3.于是我发现是没有将图片转成的py文件导入我的脚本。参考这位博主的(https://blog.csdn.net/a861357276/article/details/107205604)

# coding:utf-8
import base64
import os
from one_png import img as one    #导入你的图片img.py变量,赋别名为one ,导入py文件相当导入一个包因此不需要后缀
temp = open('one.png', 'wb')        #创建临时的文件
temp.write(base64.b64decode(one))    ##把这个one图片解码出来,写入文件中去。
temp.close()                

# ----------这里中间放入你的脚本代码,并在你引用图片的地方改成 one.png 这个内部生成的文件-------------


#这个放在代码最后,如果放在前面,会马上删除图片,导致程序不能正常运行
os.remove('one.png')    #用完可以删除这个临时图片


这里注意几个点:

1.在没有导入之前我重新打包,发现仍然运行不成功,原因还是那个在我代码找不到图片,因此我关掉电脑上个厕所喝杯水好好分析
2.我在想我虽然导入了图片文件,但是我脚本里面引用的还是原来的那个图片img.png
3.问题肯定出在这,明天继续弄

于是今天就把昨天踩到的小坑挖出来给大家分享。(小白教程)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值