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

博客介绍了使用PyInstaller打包GUI程序时遇到的资源文件找不到的问题及其解决方案。关键步骤包括自动生成.spec文件,编辑spec文件添加所需资源,以及修改代码中文件路径的引用方式,确保使用绝对路径。通过这些方法,成功打包并运行了包含图片和ico文件的exe程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日使用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可以正常运行了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值