1. 背景

现在的电脑大多都是64位的,开发者安装的 Python 也多是64位的,所以使用 pyinstaller打包出的exe也是64位的。

有时候用户的电脑是古老的windows7 32位系统,那么是无法运行我们打包出的64位exe软件的。这个时候就需要我们安装使用32位的Python来打包和发布软件。

本文即说明在普通的已经安装有64位Python和PyCharm的开发环境下,如何简洁干净的安装 32位 Python,并顺利打包和发布 32位的软件。

2. 配置32位Python解释器

2.1 当前电脑配置

Window 10 64位,Python 3.7 64位,PyCharm 社区版。

2.2 下载 32位 Python

 在Python官方网站上找一个适合的版本下载。或者简单点,可以用我安装使用的这个版本:Python3.8.10_32位_win7win10,适合win7和win10的32位安装版。

2.2 安装时的注意事项

安装该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 文件夹内。

2.3 配置PyCharm

下面我们来配置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的第三方库是隔离的)。

注意pyinstaller库是必须要安装的,有了它,我们的软件才能打包成exe发布。其它的包,比如PyQt5是我项目中用到的,不是必须安装的。

常用的第三方库安装后如下图。

 这样,该项目的32位Python解释器环境就配置好了。

2.4 试验

我们来试验一下。右键点击随便一个 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,然后确定。

3. 标准的python软件打包和发布流程

该流程可参考:脚本之家-Python如何发布程序的详细教程

此处列出快捷且关键的步骤。

3.1 打包命令

其原理很简单,就是使用命令:

pyinstaller -F -w main.py

-F, –onefile 打包成一个exe文件。
-D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。
-c, –console, –nowindowed 使用控制台,无界面(默认)
-w, –windowed, –noconsole 使用窗口,无控制台

关键的点在于使用哪个(which) pyinstaller.exe。

3.2 实际操作

在PyCharm中,首先确保该项目的解释器是 32位 解释器。

然后右键点击你将要打包的py文件,该文件必须是程序入口文件(带有 if __name__ == __main__ 代码),找到Open in terminal点一下,Pycharm底部会出现Terminal窗口。

 

输入命令:

pyinstaller -F -w main.py

 

稍等片刻,就会在 dist 文件夹内发现打包好的 exe 软件。

3.3 交付

将打包好的.exe文件放入项目所在文件夹,将所有需要的素材(图片、音乐等)一起发送,压缩成包。对方解压后,即可当作绿色软件运行。

注意:在Python代码中使用 相对路径 索引/使用的 文件,都必须按对应文件夹路径 放置在 .exe 周围。如在 xxx.py 中使用了 ./assert/mypic.png 文件,则 .exe 旁边必须也要有 ./assert/mypic.png文文件夹及文件。如果yyy.py 代码中使用 loadui(‘mydlg.ui’) 方式加载了 mydlg.ui 文件,同样的,mydlg.ui 也要复制到 .exe 同文件夹内。

4. 其它

之所以能这么操作,其实使用到了Python虚拟运行环境。我们刚才在PyCharm中新增的就是 virtualenv 软件虚拟出的32位python运行环境。详细了解参考:此文

虚拟运行环境有以下优点:

  • 使得不同Python应用的开发环境相互独立
  • 开发环境升级不影响其他应用的开发环境,也不会影响全局的环境(默认开发环境是全局开发环境),因为虚拟环境是将全局环境进行私有的复制,当我在虚拟环境进行 pip install 时,只会安装到选择的虚拟环境中。
  • 它可以防止系统中出现包管理混乱和版本的冲突

如有疑难问题,可评论留言。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐