因为各种原因,需要我把我写的py程序打包成exe文件给没有python环境的电脑使用,而那个电脑是32位系统的遗民,通过一系列摸索,终于解决了,记录一下。
在有源码的情况下,想让32位电脑能运行,无非两个方向:
一是给32位电脑安装python环境,直接运行。
二是打包成32位exe。
想打包成64位exe转成32位那是不可能的。
第一种方法并不是我不用,而是由于安全原因该32位电脑不可访问外网,所以导致我不能直接给他安装32位python环境,因为程序要的各种包要通过网络下载。
但也不是毫无办法。
32位python的安装包可以直接传输到电脑,需要导入的包也可以提前下载好适用于32位系统的whl文件(推荐国内清华镜像网站下载whl安装包https://pypi.tuna.tsinghua.edu.cn/simple)
通过cmd控制台,cd到指定的文件目录,输入
pip install whl文件名
进行本地安装,注意不要重命名下载的whl文件,同时记得添加whl后缀
但是之所以这样没有成功,是因为如此本地安装各种包,可能会出现版本不兼容的情况,报错之后,你需要手动寻找新的版本包重新安装,而你不可能知道兼容的版本号,无疑大海捞针。
当然这种问题是少数,主要我用了opencv-python的包,和numpy包版本不兼容,如果你直接
pip install opencv-python
会自动下载兼容的numpy包,分开下载就容易出问题了
==========================================================
此法不成我只能打包成exe文件了
我开始就已经用auto-py-to-exe包打包成exe文件了,就是这个32位系统让我两眼一黑
但是64位系统是向下兼容的,可以运行32位程序。
那么我们需要再安装一个32位的python,
(环境变量配不配置无所谓,但你要记得你安装的位置)
并且测试可不可以打开。
如果打不开32位的python那就白搭了,重装适合你的32位python。
如过通过anaconda虚拟一个32位的环境进行打包也是可行的。
但是anaconda太大被我卸了,用pycharm一样可以实现,因为pycharm也可以创建一个新的python环境,不过不是虚拟的罢了,因为你确实要安装32位的python。
点击右上角设置
接着打开添加环境的界面
添加一个新的python环境,可以改一下文件夹名字方便辨别,比如图中我改成了“venv32”
之后回到刚才,点击加号添加你需要打包的文件中要用的包
虽然但是,还是说一下,打包文件还需要安装pyinstaller和pywin32两个包。
之后点击下方的“Terminal”按钮,打开终端
cd到你要打包的文件位置,不cd直接把文件放在默认显示的位置也ok,图中是
c:\users\86198\pycharmprojects\example
直接放进去
pyinstaller -F -w 文件名.py
-w是不基于控制台的
-c是基于控制台的的
打包生成的exe文件会在venv32的dist文件夹中。
你也可以打开这个exe文件,运行时在任务管理器中查看是不是后面(32位)字样,判断是否打包成功。
祝好。