pyinstaller64位windows电脑打包32位exe 5500字超详细教程
目录
壹、方法简介
贰、安装32位python
一、下载安装包
二、安装python
叁、安装第三方库
一、检查安装
二、安装第三方库与pyinstaller
三、pyinstall
肆、打包exe文件
一、配置.spec文件
二、打包!打包啦!
伍、验收
陆、后记
参考资料
壹、方法简介
哇,这个问题整了我一个早上,终于解决,发个文章说一下,以此记录。
网上流行两个办法,用
anaconda布置32位python虚拟环境
或者
下载,使用32位python的pyinstaller。
我用anaconda就是无法布置虚拟环境,并且anaconda下载,安装都超级慢,所以我推荐你使用第二种办法。
(如果你的anaconda可以顺利布置虚拟环境,那你当我没说,你可以去看这篇文章,顺路帮我看看有没有用)
提示:
本文介绍的是如何使用32位python打包exe文件,不会介绍使用anaconda的办法
贰、安装32位python
一、下载安装包
先去下载32位的python(一定是32位的!!)
下载链接
点击这里,下载32位的python安装包
提示:
如果你不想下载3.9.7也可以,版本可以随意
二、安装python
双击运行安装包
一定要把add python to path勾选!!!自己配置环境变量会很麻烦。主要是我懒得教你配置环境变量
然后选择箭头指向的自定义安装
接着勾选pip,这样可以安装第三方库,其他默认即可
如果有需要更改安装路径的在此处更改
建议:
自己创建一个文件夹,放在较浅的目录,windows默认安装目录很深,文件夹最好起一个与原64位python有区别的名字(例如我起的是python32bit)然后把32位python安装在此文件夹下
点击install,一小会之后,python32位就安装好啦!
叁、安装第三方库
一、检查安装
进入刚刚安装的python32位的文件夹
注意!
接下来文章中的“python”指的都是刚刚安装的32位python,而不是原来的64位
首先记得更改一下python.exe的名字(例如改成python32.exe),才能在cmd上与原64位python区分开
打开命令提示符cmd(powershell也行)
提示:
win+r快捷键,然后输入cmd,就可以打开命令提示符
输入(就是你刚刚更改python.exe的名字)
python32
如果有类似输出就没问题了
注意检查一下红框处,确认安装的是32位
提示:
输入
exit()
可以退出python控制台
二、安装第三方库与pyinstaller
然后你如果在项目中有使用第三方库(例如我有使用pygame)
用此命令安装
python32 -m pip install <包名>
不要漏了前面的python32!!否则就会安装到原64位的python上
提示:
如果安装太慢可以使用镜像安装
python32 -m pip install -i http://pypi.tuna.tsinghua.edu.cn/simple/ <包名>
三、pyinstall
最后也要记得把pyinstaller安装上
python32 -m pip install pyinstaller
还要安装它的依赖模块
python32 -m pip install pywin32
接着找到python32的安装位置,进入Scripts文件夹
四处看一看……
好!这就彳亍了 ,接下来就全靠pyinstall.exe这个应用程序了
肆、打包exe文件
大多数网上的文章都说一个命令可以解决大部分情况,然而事实是
那我们应该怎么做呢?
一、配置.spec文件
新建一个<filename>.spec文件,名字可以随意,放在python32安装目录的Scripts文件夹下
源代码可以不用放入此文件夹中
提示:
可以使用记事本打开,我使用的是sublimetext文本编辑器,有兴趣的可以查看这篇文章
此处我以我自己编写的扫雷游戏为例(使用模块pygame)
打开,将代码复制进去
# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['<源代码路径1>','<源代码路径2>'],#可以有多个源代码路径pathex=['<源代码所在主文件夹>'],binaries=[],datas=[(<资源路径>,<资源输出路径>)],#可以有多个元组#输出路径为相对路径,相对于pyinstaller自动创建的输出文件夹#若有需直接放入输出文件夹的文件,datas中元组第二项可以为'.'hiddenimports=[<遗漏模块补充>],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)exe = EXE(pyz,a.scripts, [],exclude_binaries=True,name='<app名>',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=False,disable_windowed_traceback=False,target_arch=None,codesign_identity=None,entitlements_file=None )
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas, strip=False,upx=True,upx_exclude=[],name='<输出文件夹名>')# -*- mode: python -*-block_cipher = None
模块遗漏问题:pyinstaller在进行打包时,会解析打包的python文件,自动寻找py源文件的依赖模块。但是pyinstaller解析模块时可能会遗漏某些模块(not visible to the analysis phase),造成打包后执行程序时出现类似No Module named xxx。这时我们就需要在Analysis下hiddenimports中加入遗漏的模块。
例如:你遗漏了pandas模块,则hiddenimports应该写成这样
hiddenimports=[
'pandas',
'pandas._libs',
'pandas._libs.tslibs.np_datetime',
'pandas._libs.tslibs.timedeltas',
'pandas._libs.tslibs.nattype',
'pandas._libs.skiplist',
]
根据错误信息自己补全列表
注意!
阅读完后要将格式代码中的注释全部删掉。主要是我也不知道会发生什么事情
示例代码:
# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['D:\\python32bit\\Scripts\\pyinstaller32bit\\minesweeper\\minesweeper.py',],pathex=['D:\\python32bit\\Scripts\\pyinstaller32bit\\minesweeper'],binaries=[],datas=[('D:\\python32bit\\Scripts\\pyinstaller32bit\\minesweeper\\images','images')],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)exe = EXE(pyz,a.scripts, [],exclude_binaries=True,name='minesweeper',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=False,disable_windowed_traceback=False,target_arch=None,codesign_identity=None,entitlements_file=None )
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas, strip=False,upx=True,upx_exclude=[],name='minesweeper')# -*- mode: python -*-block_cipher = None
根据需要自行补全<括号>中的信息,并将括号替换为引号,然后保存退出
注意!
路径中的分隔符"\"要写成"\\"的形式,别问我为什么,问它
二、打包!打包啦!
终于,在经历一大堆繁杂的步骤之后,我们开始打包!
使用管理员权限打开cmd命令提示符(或者powershell)
进入python32安装目录下的Scripts文件夹
使用命令
python32 pyinstaller.exe -D <.spec文件名>
解释一下:
"-D"是会生成一系列支持文件,放在输出文件夹中,若将"-D"替换为"-F"就只会生成一个.exe文件
应用打开后会弹出一个黑色窗口(就是cmd),如果不想这样的话,则在"-D"后加入" -w"(别忘了空格)。
但两者都不建议替换,因为弹出cmd窗口可以显示错误信息(就是traceback),使用"-F"生成的单个.exe文件必须要使用cmd启动应用,不可以双击启动。
不出意外的话,你会看到一大堆输出,我相信我们都看不懂,有问题吗?没有问题。只要看最后一行
好!
伍、验收
回到Scripts文件夹,会发现多了两个文件夹在里面
bulid可以直接删除,不会有任何影响。
dist里面就是输出文件夹,打开来,翻一翻
有个minesweeper.exe,打开,一切顺利!
陆、后记
哇,真的不容易,终于码完啦!
希望本文章能为在互联网上苦苦寻找资料的你有所帮助,我也是翻了了好久资料,把32位python卸了又装,卸了又装,写文章中途还差点翻车
还好还是终于写到了这里,CSDN新人,python新手,如有错漏之处请指出,我会认真认错,坚决不改认真改正。
至于文章中提到的扫雷程序,这里有链接,有兴趣的可以拿去玩
链接:在这里
提取码:a3fe
还有还有,如果你想最后卸掉python32的话,要把python32.exe的名字改回来,要不然......
参考资料
Pyinstaller 打包发布经验总结_YanHua_jake的博客-CSDN博客
如何使用pyinstaller打包32位的exe_weixin_34087503的博客-CSDN博客
pyinstaller64位windows电脑打包32位exe 5500字超详细教程相关推荐
- 关于python在64位机器上打包32位exe(兼容xp系统)解决方法
python在64位机器上打包32位exe 1.下载32位python 3.4.4及以下版本支持xp,32位3.4.4下载地址https://www.python.org/ftp/python/3.4 ...
- 64位的电脑比32位的电脑跑的快么?「多图预警」
前言 代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电 ...
- 32位算术逻辑运算单元alu设计_64位的电脑比32位的电脑跑的快么?多图预警
前言 代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电 ...
- 64位电脑 装32位oracle,64位Windows可以安装32位的Oracle吗
嘿服类 回答数:37 | 被采纳数:91 2017-04-21 07:22:43 64位的win7 完全可以安装32位的oracle. 安装方法如下: 首先,要解除oracle安装的windows ...
- 计算机32位如何变成64位,我电脑是32位的
2017-10-19 09:12:01 你要换成64位只有重新更换系统,重装一套64的,主要还是底层代码不一样,实际是看不出的 全部 2017-10-19 09:12:01 2017-10-19 09 ...
- Pyinstaller如何打包多个资源文件(超详细教程)
有时我们需要将python源程序使用pyinstaller打包成可执行exe发布,而除了我们常用的添加exe图标功能外,很多时候还希望能把各种图片.声音.字体等资源打包到exe中.尤其是在使用&quo ...
- 计算机操作系统32跟64区别是什么,32位和64位的区别 怎样区分电脑操作系统32位和64位...
32位的操作系统最多支持4G的内存,64位系统则可以支持128G甚至更大;在处理数据的能力上64位的系统上比32位系统快一倍;32位的电脑只能运行32位的软件,而64位的电脑可以运行32位的软件也可以 ...
- pythonexe32位-如何使用pyinstaller打包32位的exe程序
说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位.而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容.网上查询发现,简单(可能不方便 ...
- pythonexe32位-如何使用pyinstaller打包32位的exe
说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位.而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容.网上查询发现,简单(可能不方便 ...
最新文章
- 使用OKR管理好团队这四个高深的技巧要明白
- 只显示小方格_木托盘拼成院子围栏,镂空方格里都种上菜,一物两用,收获满满...
- 软件定义闪存:加速闪存规模化应用
- android怎么打开wifi的组播功能
- [转]程序实现调用迅雷(以C#为例)
- JavaScript习题(数组去重、有序数组乱序排列)
- SVD 与 PCA 的直观解释(3): SVD的直观解释及推导
- 升级指南:将 SharePoint Portal Server 2003 升级到 Office SharePoint Server 2007
- 一行代码,Pandas秒变分布式,快速处理TB级数据
- 弥散阴影html,三步制作出这种精美弥散阴影
- 2020-11-11 对象与类
- java怎么实现直方图均衡化_直方图均衡化原理与实现
- 2017.4.8微软笔试题
- 关于ddos你了解多少?
- 开源新作!三个月啃透888页Java王者级核心宝典,大厂面试必备技能
- Yapi idea插件使用
- idea手工添加jar依赖包
- 局域网视频通讯-Android APP
- Spring Boot 和 Spring 有什么区别
- 团队管理5--技术管理如何兼顾技术
热门文章
- Golang 发送html Gmail邮件
- 给oracle scott权限,Oracle Scott创建视图权限不足解决办法
- 天涯明月刀7月4号服务器维护,8月4日服务器例行维护公告
- 四个小方块组成一个方块的标志_四个“口”字组成一个方块的是什么牌子的标志?...
- 连接雅虎财经API获取股票信息
- 桥接模式(Bridge Pattern)
- 全球及中国金属硅行业产值状况与竞争格局分析报告2022版
- 使用ATmega8L-8PU 在面包板上搭建自己的Arduino ,并闪亮一个LED
- uva12627 Erratic Expansion
- slide-view 微信小程序官方左滑删除组件