最近在踩坑将卷积神经网络的项目代码打包成exe,遇到了很多问题,所以记录一下。
打包的时候最好使用anaconda新建一个虚拟环境,安装上必要的包以后,本地测试没问题再打包
在打包的时候,一般使用pyinstaller,可以选择打包成单个exe 还是一个文件夹,如果项目比较小,可以打包成单个exe,但是对于复杂的项目,最好都打包成文件夹,方便查看缺了哪些依赖包(这里有大坑)。
卷积神经网络,涉及到cuda的一些包,一定要严格按照版本要求安装,不然会出现各种版本导致的运行问题,https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html,我遇到的onnxruntime问题就是有版本问题,参考上述链接以后重新安装了。
我打包的问题主要有两个:1.cuda环境版本冲突导致的运行错误,这个就需要参考相关的官方文档。2.打包后的某些依赖包,表面上看是有了,其实打开看看就知道,缺了很多(这就是上述的大坑,表面是看打包进来了,其实缺了很多,需要细心的排查问题),这种问题,最好解决,直接去虚拟环境的site-package里面拷贝到打包后的文件夹中。还有缺了的模型文件或者其他配置文件,都可以直接拷贝过来。
我打包的程序很大,加上依赖有5个G,我听说用pipenv可以减小程序包,尝试以后,没啥大用,所以那些建议用pipenv的,就不要吃尝试了,没啥用