[Python]pyinstaller打包32位exe小记

4,055 阅读2分钟

2020.11.27

由于媳妇工作中需要大量表格,故利用Python开发一个处理Excel表格的小工具(目前第一版本功能比较少,bug比较多)。本人开发环境是在Mac系统下,然后在window下打包成64位和32位通用的exe程序,本文主要介绍打包过程中的流程和注意事项。 初学过程中,如有纰漏,望指正。

一 打包环境

  • Windows 7 64位旗舰版
  • 32位Python3.8.6
  • 32位pywin32库
  • pyinstaller4.1
  • pandas、xlrd、xlwt...(这是我开发中用到的库,与打包无关)

二 打包流程

  1. 提前下载32位python3.x,32位pywin32,pyinstaller文件
  2. 安装32位python3.x
  3. 安装32位pywin32至32位python3.x文件夹目录下,然后cmd命令进入该文件夹下,执行python3 ./Scripts/pywin32_postinstall.py -install
  4. 将pyinstaller解压至32位python3.x文件目录下,然后cmd命令至pyinstaller文件夹下,执行python setup.py install命令
  5. 将功能代码文件放入pyinstaller文件夹下
  6. 逐个安装功能代码中依赖的库,执行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn module_name , module_name即库名称
  7. 打包:运行命令python32 pyinstaller.py -F xx.py

三 注意事项

  1. 若电脑上已有64位python版本,建议将32位python.exe重新命名,例如改为python32.exe,后续执行命令皆用python32指明Python版本
  2. 基本的Windows指令,进入文件夹指令(绝对路径):d/python32/pyinstaller/
  3. pyinstaller解压后嵌套了一个同样命名的文件夹,需删除
  4. 若电脑之前没有Python环境,系统会提示需要升级一下pip版本,按照提示的指令执行(类似pip install --upgrade pip的命令,没有截图,后续补充)
  5. 采用传统的pip install xxxx会速度奇慢,所以推荐采用国内镜像按照,指令严格按照上述步骤6
  6. requirement.txt上的依赖库是我在Mac导出的,但是根据名称发现,在win32环境并不适用,所以需要手动安装(Windows虚拟环境未研究,后续补充)
  7. 如果出现报错ERROR:Cannot unpack file xxxx,则是因为下载失败引起的,采用国内镜像即可解决,指令严格按照上述步骤6
  8. 安装指令比较常用的选项是:-w:去除指令命令行窗口;-n xxxx指定名称(会在pyinstaller目录下创建一个同名的文件夹,exe文件会在这个文件夹下的dist文件夹内,默认是脚本名称);

四 资源

参考资料

pyinstaller在64位系统下打包32位程序 Python PyInstaller安装和使用教程(详解版) 解决python使用pip安装下载库出现错误:ERROR:Cannot unpack file xxxx情况 Python脚本生成单个EXE文件