现在的电脑大多都是64位 x86-64 的,开发者安装的 Python 也多是64位的,所以使用 pyinstaller打包出的exe也是64位的。
有时候用户的电脑是古老的windows7 32位系统,那么是无法运行我们打包出的64位exe软件的。这个时候就需要我们安装使用32位的Python来打包和发布软件。
本文即说明在普通的已经安装有64位Python和PyCharm的开发环境下,如何简洁干净的安装 32位 Python,并顺利打包和发布 32位的软件。
Window 10 64位,Python 3.7 64位,PyCharm 社区版。
在Python官方网站上找一个适合的版本下载。或者简单点,可以用我安装使用的这个版本:Python3.8.10_32位_win7win10,适合win7和win10的32位安装版。
安装该python 32位版本的过程中,注意不要配置环境变量。
因为我们安装32位的Python仅仅是用来创建虚拟python环境,不是当作主力Python使用的。如果把这个32位版本,加入到了系统环境变量 PATH,我们电脑的默认python就从以前使用的 64位 变成 新安装的 32位 版的了。
下面是安装的配置选项截图。
【注意勾选 Install for all users】
【注意不要勾选 Add Python to environment variables】
这样,我们的32位 Python就已经安装好了,它会被安装到 C:\Program Files (x86)\Python38-32 文件夹内。
下面我们来配置PyCharm。
在PyCharm选中Project项目,依次点击File-Setting-Project-Python Interpreter。查看本项目在用的Python解释器配置情况和已安装的第三方库。可以看到当前在使用的 64位 Python。
下面,我们来新增一个 Python解释器环境。 (解释器类似于翻译器,对于同一段代码,不同的解释器环境解释出来的Python结果不同。同样一句“你好”,汉英解释器会解释成 hello,汉日解释器会解释成 こんにちは)
1. 依次点击:齿轮->Add
2. 在界面中操作:
Location: 直接修改文件夹名称
Base Interpreter:选择刚安装的 32 位的 Python.exe
然后,就能看到该项目出现了2个Python环境,每个环境下面的Package是不一样的。
下面我们为 32位的 Python环境安装 第三方库 Package。
Python Interpreter处选中刚配置好的 32位Python,点击下方 + 号,安装自己需要的第三方库。注意,要把自己用到的第三方库全都重新安装一遍(与64位python的第三方库是隔离的)。
常用的第三方库安装后如下图。
这样,该项目的32位Python解释器环境就配置好了。
我们来试验一下。右键点击随便一个 xxx.py ,选择 open in -> Terminal。
然后在 Terminal 中输入 python ,查看结果。
如果如下图一样,显示的是我们刚安装的 Python 3.8.10 并且 出现 32 bit 就说明该项目的 32位 Python 解释器环境是确实配置好了。
如果显示的还是以前的64位python,那可能是 File-Setting-Project-Python Interpreter 这里没有选中我们新配置的python环境。如下图所示,要选中那个 32位的Python,然后确定。
该流程可参考:脚本之家-Python如何发布程序的详细教程
此处列出快捷且关键的步骤。
其原理很简单,就是使用命令:
pyinstaller -F -w main.py
-F, –onefile 打包成一个exe文件。
-D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。
-c, –console, –nowindowed 使用控制台,无界面(默认)
-w, –windowed, –noconsole 使用窗口,无控制台
关键的点在于使用哪个(which) pyinstaller.exe。
在PyCharm中,首先确保该项目的解释器是 32位 解释器。
然后右键点击你将要打包的py文件,该文件必须是程序入口文件(带有 if __name__ == __main__ 代码),找到Open in terminal点一下,Pycharm底部会出现Terminal窗口。
输入命令:
pyinstaller -F -w main.py
稍等片刻,就会在 dist 文件夹内发现打包好的 exe 软件。
将打包好的.exe文件放入项目所在文件夹,将所有需要的素材(图片、音乐等)一起发送,压缩成包。对方解压后,即可当作绿色软件运行。
之所以能这么操作,其实使用到了Python虚拟运行环境。我们刚才在PyCharm中新增的就是 virtualenv 软件虚拟出的32位python运行环境。详细了解参考:此文。
虚拟运行环境有以下优点:
- 使得不同Python应用的开发环境相互独立
- 开发环境升级不影响其他应用的开发环境,也不会影响全局的环境(默认开发环境是全局开发环境),因为虚拟环境是将全局环境进行私有的复制,当我在虚拟环境进行 pip install 时,只会安装到选择的虚拟环境中。
- 它可以防止系统中出现包管理混乱和版本的冲突
如有疑难问题,可邮件联系:[email protected]。第一个问题免费。