当前位置: 代码迷 >> 综合 >> Pyinstaller:python程序打包经验
  详细解决方案

Pyinstaller:python程序打包经验

热度:91   发布时间:2024-01-19 09:40:15.0

打包环境

软件
  • pyinstaller 3.4
  • Anaconda3(python3.6.5)
  • pycharm(community)
具体问题
  • 电脑上原先只有安装anaconda版本的python,程序中引入了pandas numpy scipy matplotlib等库
    在原有环境下用pyinstaller打包结果程序大小达到了330+m…这个是非常夸张的大小,放到普通机子上打开要1分钟左右。
解决方法
  1. 查询相关资料后,说是可以用virtualenv新建一个虚拟环境进行打包。于是在pycharm中新建了一个项目,采用原来的anaconda中的解释器,然后到setting中添加需要使用到的包。最后在terminal中pyinstaller xx.spec结果打包完仍然有300+m
  2. 后来搜索到一篇用pipenv建立环境并用pyinstaller打包的文章,参考后试图在terminal中使用pip指令安装pyinstaller,结果失败了(搜索一番疑似是pycharm下的virtualenv和pyinstaller的兼容问题)
  3. 尝试使用命令行,在venv中的的script中用启动安装的虚拟环境(pycharm下建立的环境默认名称是venv),在虚拟环境下使用pip指令安装pyinstaller。而后尝试打包,最后程序大小为260+m,相比之前减少了70m。
  4. 怀疑环境还是不够纯净的问题,于是重新从官网上下载了一个python3.7.3的版本,纯净版。新建项目选用纯净版python的解释器,仍然使用virtualenv,不过全程在命令行中使用,不使用Pycharm下的terminal。在venv下打包,程序大小37m,接近原来的十分之一了。
存在问题
  1. 虚拟环境占空间,相当于要重新下包
  2. GUI程序运行结束时无法正常关闭,需要手动关闭黑窗口(感觉这个问题比较严重),用的是tkinter。