pyinstaller打包exe踩坑记录

pyinstaller版本过低或过高导致的问题

版本过低的pyinstaller,如3.6版本,在打包过程中会产生很多奇怪的问题,可以尝试一下将版本更新成4.5.1。值得注意的是高版本不一定好,可能会有一些bug存在,如在使用5.6版本的时候,运行exe时产生错误 TypeError: startswith first arg must be str or a tuple of str最终采用4.5.1版本解决了这个错误

当主文件中有自建模块导入时,产生错误Module not found

建议将自建的py模块放入一个自建包中,即新建文件夹,并在文件夹中添加空白__init__.py文件,使文件夹变成包,将自建模块放入包中,打包时采用命令

pyinstaller -F main.py -p 自建包绝对路径

打包成exe文件后执行失败FileNotFoundError

通过手动添加hook解决了这个错误

打包时出现报错UnicodeDecodeError: ‘utf-8’ codec can’t decode byte

命令行中激活code page 65001,再进行打包

打包完成后将exe转发至他人电脑运行报错ImportError: Could not find ‘nvcuda.dll’.

2024年实验室某项目开发中出现这种错误是由于开发深度强化学习算法时使用了tensorflow-gpu版本,而对方电脑并没有安装支持GPU调用的cuda动态链接库,此时虽然在代码中显式地指明使用CPU:

os.environ["CUDA_VISIBLE_DEVICES"]="-1"

但仍然产生此报错,此时建议手动添加此动态链接库,这个文档一般都会保存在‘C\Windows\System32’中,此时采用指令:

pyinstaller --onefile --add-binary "C:\\Windows\\System32\\nvcuda.dll;." -F main.py -p 自建包的绝对路径

如果仍然报错,尝试采用:

pyinstaller --onefile --add-binary "C:\\Windows\\System32\\nvcuda.dll;." -D main.py -p 自建包的绝对路径
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值