RKNNtoolkit2结合Pyqt5在Ubuntu上进行打包感想

在写这篇文章之前,博主都已经尝试了三种方法,分别是pyinsatller、cx_freeze和nuitka。可能因为rknn是离线包的原因,或者其它原因,这三种方式都无法正常索引rknn包,导致rknn包缺失。现在博主试探出了一个暂为可行的方法,能够将rknn结合pyqt5成功打包为Ubuntu可执行文件。下面给出步骤,仅作为自己记忆:

1.使用cx_freeze进行打包,cx_freeze可以让自己自定义包的管理。首先pip一下,然后cxfreeze你的主函数,在你的当前目录下会生成build/exe.linux...文件,然后在这个文件中有lib和main(这里我的主函数是main.py,这里叫main),lib里的文件夹内容,全部提取自你的python虚拟环境中的site-packages。lib中的library.zip是cx_freeze验证你的项目中是否含有包的重要依据。比如说你的项目import了torch,但是你没有用到,而cx_freeze还是根据你的import把torch放进去了,不放不行。那么你就可以仅保留library.zip中的torch.dist.info(这个文件也是来自site-packages),而把lib中的torch删除,让环境误以为你的torch依然在,这里就可以减小你的应用大小。

2.现在,当运行cxfreeze你的主函数后,运行main肯定会报错。

(1)如果报模块缺少,就把sitepackages里的包往lib里放,别忘了同时把对应的dist-info文件放到library.zip里面。(解决大多数问题)

(2)缺少pkg_resources,重新安装setuptool,并把sitepackages里的pkg_resources重新放在lib中。

(3)uuid错误,将onnx中发生错误的py文件关于uuid的部分删除,import uuid也删除。uuid的生成部分使用一些随机值代替

(4)rknn内exit无定义,无解,并且只在1.5.2上遇到过,换成1.6.0没有问题。

(5)qt报错,在网上查看教程后依然不行的话,就听天由命吧

应用所需的环境必须有qtcreator,并且22.04和20.04不能互通,即gblic版本不同。有些问题能使用setup.py搞清楚的尽量用setup.py搞清楚,尽量不要手动导入。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值