Python使用pyinstaller打包生成exe文件,提示no such file错误的解决方式

近日使用pyinstaller打包GUI程序,由于程序中使用了一些图片之类的文件,源代码直接运行没有任何问题,可是一旦打包成exe,运行总是提示No such file类的错误。

网上参考很多文章总是不行,exe提示找不到文件无非就是打包没打进去或者文件路径不对。

后经过反复试验,终于成功,以下两点颇为重要,尤其是代码中文件路径的代码设置方法,

1.首先pyinstaller -F -w -i test.ico test.py,目的是自动生成test.spec文件供后续修改

2.编辑test.spec文件,添加added_files 并修改datas属性,参考如下:

added_files = [
         ( 'D:/Projects/Python/test/test.png', '.' ),
         ( 'D:/Projects/Python/test/test.ico', '.' ),
         ( 'D:/Projects/Python/test/test/data', 'test_data' )
         ]
         
a = Analysis(['test10.py'],
             pathex=[],
             binaries=[],
             datas=added_files,

        # ***  added_files 是要打包的文件列表
        # ***  注意修改datas=added_files,

3.代码中使用到资源文件的地方,不能使用相对路径

#错误写法,虽然运行py文件不报错,一旦打包就会找不到该文件
self.window.iconbitmap('test.ico')

#正确写法
self.file_path = os.path.abspath(os.path.dirname(__file__))
imgPath =  os.path.join(self.file_path,'test.ico') 
self.window.iconbitmap(imgPath)

4.pyinstaller -F test.spec,恭喜你exe可以正常运行了

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值