【py打包】通过pycharm在64位电脑上打包32位exe文件

本文介绍如何将Python程序打包成可在32位系统上运行的EXE文件,包括解决依赖包版本冲突的方法及使用PyInstaller进行打包的具体步骤。

因为各种原因,需要我把我写的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,
(环

<think>我们参考用户提供的引用和之前的回答,现在用户明确想使用PyCharm配合PyInstaller将py文件打包exe程序。我们将步骤详细说明如下:###步骤1:安装PyInstaller在PyCharm中,我们可以通过终端(Terminal)来安装PyInstaller。推荐使用清华镜像源加速安装。```bashpipinstallpyinstaller-ihttps://pypi.tuna.tsinghua.edu.cn/simple```###步骤2:编写Python代码并确保运行正常在打包之前,请确保你的Python代码(例如`main.py`)在PyCharm中可以正常运行。###步骤3:使用PyInstaller打包PyCharm的终端中,切换到你的Python文件所在目录(如果已经在项目目录下则不需要切换),然后执行打包命令。####常用打包命令:-**生成单个exe文件**(推荐,便于分发):```bashpyinstaller-Fmain.py```其中`-F`表示生成单个可执行文件。-**生成单个exe文件并隐藏命令行窗口**(适用于GUI程序):```bashpyinstaller-F-wmain.py```其中`-w`表示不显示命令行窗口。-**添加图标**(可选):```bashpyinstaller-F-w-iicon.icomain.py```其中`-i`用于指定图标文件(需要提前准备好ico格式的图标)。###步骤4:找到生成的exe文件打包完成后,在项目目录下会生成两个新文件夹:`build`和`dist`。生成的exe文件于`dist`文件夹中。你可以将此exe文件发送给其他Windows用户使用(注意:无需Python环境)。###常见问题及解决方案(参考引用[3]):1.**打包后运行exe提示缺少模块**:可能是因为你的代码中使用了某些库,而PyInstaller没有自动打包进去。此时,可以尝试在打包命令中添加`--hidden-import`参数手动指定。例如:```bashpyinstaller-F--hidden-import=pandasmain.py```2.**打包后资源文件(如图片、配置文件)无法加载**:由于打包后的exe运行时会解压到临时目录,因此代码中访问资源文件的路径需要修改。建议使用以下方式获取资源路径:```pythonimportsysimportosdefresource_path(relative_path):"""获取资源的绝对路径"""ifhasattr(sys,'_MEIPASS'):returnos.path.join(sys._MEIPASS,relative_path)returnos.path.join(os.path.abspath("."),relative_path)#使用示例image_path=resource_path('image.jpg')```然后在打包时通过`--add-data`参数将资源文件加入:```bashpyinstaller-F--add-data="image.jpg;."main.py```(注意:Windows中使用分号`;`分隔源文件路径和目标路径,Linux/macOS使用冒号`:`)3.**打包文件体积过大**:可以尝试以下方法减小体积:-使用UPX压缩(下载UPX并添加到环境变量,PyInstaller会自动使用)[^2]-在打包命令中添加排除不需要的模块,例如:```bashpyinstaller-F--exclude-module=tkintermain.py```4.**打包时出现递归深度错误**:在打包命令前设置递归深度(虽然PyInstaller通常不需要,但若遇到递归问题可尝试):```bashpyinstaller-F--recursion-limit5000main.py```###高级用法(可选):-**生成spec文件进行定制化打包**:首次打包后会生成一个`main.spec`文件,你可以修改此文件进行更复杂的配置(如添加多个脚本、资源等),然后直接使用spec文件打包:```bashpyinstallermain.spec```-**添加版本信息和公司信息**:创建一个版本信息文件(如`version_info.txt`),然后使用`--version-file`参数:```bashpyinstaller-F--version-file=version_info.txtmain.py```版本信息文件内容示例:```#UTF-8VSVersionInfo(ffi=FixedFileInfo(filevers=(1,0,0,0),prodvers=(1,0,0,0),mask=0x3f,flags=0x0,OS=0x40004,fileType=0x1,subtype=0x0,date=(0,0)),kids=[StringFileInfo([StringTable(u'040904B0',[StringStruct(u'CompanyName',u'MyCompany'),StringStruct(u'FileDescription',u'MyApp'),StringStruct(u'FileVersion',u'1.0.0.0'),StringStruct(u'InternalName',u'MyApp'),StringStruct(u'LegalCopyright',u'Copyright&copy;2024MyCompany'),StringStruct(u'OriginalFilename',u'MyApp.exe'),StringStruct(u'ProductName',u'MyApp'),StringStruct(u'ProductVersion',u'1.0.0.0')])]),VarFileInfo([VarStruct(u'Translation',[0,1200])])])```###注意事项:-**Python版本**:建议使用Python3.6~3.10,因为PyInstaller对最新Python版本的支持可能有延迟。-**杀毒软件误报**:打包生成的exe可能被某些杀毒软件误报为病毒,添加数字签名可缓解此问题[^2]。-**跨平台**:PyInstaller虽然支持跨平台,但生成的exe只能在当前操作系统运行(Windows生成的exe不能在Linux/Mac运行)。通过以上步骤,你应该能够顺利在PyCharm中将Python文件打包exe程序。如果遇到其他问题,请参考PyInstaller官方文档。§§相关问题§§1.如何为PyInstaller打包exe文件添加自定义图标?2.使用PyInstaller打包后,如何包含数据文件(如图片、配置文件)?3.PyInstaller打包时如何排除不必要的库以减小体积?4.如何解决PyInstaller打包后程序闪退的问题?</think>### 使用 PyCharmPyInstaller 将 Python 文件打包EXE 程序(详细步骤) #### 一、环境准备 1. **安装 PyInstaller** 在 PyCharm 的 Terminal 中执行: ```bash pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 使用清华镜像源加速安装[^1] 2. **检查 Python 环境** ```bash pip list ``` 确认所有项目依赖库已安装在当前环境[^3] #### 二、基础打包步骤 1. **打开 Terminal** PyCharm 底部菜单 → Terminal 2. **执行打包命令** ```bash pyinstaller -F -w your_script.py ``` - `-F`:生成单个 EXE 文件[^1] - `-w`:隐藏命令行窗口(GUI 程序必需)[^2] - 文件路径建议使用英文且不含空格 3. **获取生成文件** 打包完成后: - EXE 文件置:`项目目录/dist/your_script.exe` - 临时文件:`build/` 目录(可删除) #### 三、高级配置选项 | 参数 | 功能 | 示例 | |------|------|------| | `-i` | 添加图标 | `-i icon.ico`[^2] | | `-n` | 指定输出名称 | `-n MyApp` | | `--add-data` | 添加资源文件 | `--add-data "images;images"` | | `--hidden-import` | 添加隐藏依赖 | `--hidden-import pandas`[^3] | **图标设置示例:** ```bash pyinstaller -F -w -i app_icon.ico main.py ``` #### 四、常见问题解决 1. **依赖缺失错误** ```bash pyinstaller -F --hidden-import=缺失的包名 your_script.py ``` 2. **路径问题处理** 在代码中添加资源路径处理: ```python import sys import os if getattr(sys, 'frozen', False): base_path = sys._MEIPASS # 打包后路径 else: base_path = os.path.abspath(".") # 开发环境路径 config_path = os.path.join(base_path, "config.ini") ``` 3. **递归深度错误** 在打包命令前添加: ```bash pyinstaller -F --recursion-limit 5000 your_script.py ``` #### 五、完整打包流程演示 1. 准备 Python 文件 `main.py` 2. 准备图标文件 `app.ico` 3. 执行命令: ```bash pyinstaller -F -w -i app.ico --add-data "config.ini;." main.py ``` 4. 获取 `dist/main.exe` > **实测提示**:首次打包可能较慢(约 1-5 分钟),后续打包会快很多。生成的 EXE 文件可直接在无 Python 环境的 Windows 机器运行[^2]。 #### 六、注意事项 1. **路径规范**:项目路径避免使用中文和空格 2. **杀毒软件**:打包时暂时关闭,防止误删生成文件 3. **文件大小**:基础 EXE 约 5-10MB,包含大型库(如 PyQt)可达 50MB+ 4. **跨平台限制**:Windows 生成的 EXE 不能在 Mac/Linux 运行
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值