关于pyinstaller打包exe踩过的坑

发布时间 2023-10-17 15:31:48作者: 英特耐雄纳尔定要实现
  1. 打包成的exe无法用uvicorn开启fastapi的网络服务,解决办法:在
    uvicorn.run(app, host="127.0.0.1", port=8000)的上一句直接import uvicorn,参考fastapi的两种运行方式_fastapi async-CSDN博客,这样可以导入uvicorn模块,而如果把import uvicorn放在文件顶部,那么就导入不了这个模块
  2. 打包生成的单个exe文件无法运行,解决办法:不要打包生成单个文件,用pyinstaller打包生成文件夹的形式,然后运行这个文件夹中的exe文件,如果你想看见报错,那么在这个exe文件所处的文件夹cmd进去,然后输入exe文件名去打开,这样就可以看见exe运行的时候报什么错了,一般都是某某文件找不到,这时候你就根据它需要的文件,往exe同级的文件夹_internal放缺少的依赖模块,或者往exe所在的文件夹中放exe报错中缺少的文件。
  3. 总结,一定要打成多个文件的形式,第二,基本上报错的原因都是缺少文件或者模块没有引用进去,(在使用模块的前一句import这个模块,可以强制导入这个模块)