Python打包exe可执行程序及常见问题

1. 打包exe文件

1)安装pyinstaller

打包成exe文件需要使用pyinstaller模块,可通过pip安装
pip install pyinstaller

2)打包

常用参数(重点为加粗的参数):
-F  制作独立的可执行程序(即生成单一的可执行文件,而不是多个)
-p        添加搜索路径,以便找到依赖文件(import引入的文件,注意不是模块,默认会在当前                   目录查找)
-w    制作窗口程序(制作带界面的程序时,不加该参数,运行时会弹出黑框)
-c  制作命令行程序(默认)
--icon=[ico文件路径]         指定程序图标(也可以使用-i 图片名.ico)
-v [指定文件]                      指定程序版本信息
-n [指定程序名]                  指定程序名称(不指定则为源文件的名称)
-D  制作出的档案存放在同一个文件夹下(默认值)
-K  包含TCL/TK(对于使用了TK的,最好加上这个选项,否则在未安装TK的电脑上无法运行)
-X  制作使用UPX压缩过的可执行程序(推荐使用这个选项,需要下载UPX包,解压后upx.exe             放在Python(非PyInstaller)安装目录下,下载upx308w.zip)
-o DIR  指定输出SPEC文件路径(这也决定了最后输出的exe文件路径)
ps:
打包完成后会生成两个目录,dist和build,生成的exe文件位于dist目录,build目录没用可删除
制作ico图标的链接 在线生成透明ICO图标——ICO图标制作 ,下载ico图标的链接: https://www.easyicon.net/

3)示例

①制作不带图标的,非窗口程序
pyinstaller -F test.py
②制作带图标的,非窗口程序
pyinstaller -F -i favicon.ico ControlAccess.py
③制作带图标的窗口程序
pyinstaller -F -w -i favicon.ico ControlAccess.p
注意:生成的带图标的exe文件,需要离开当前目录才会显示图标

2. 常见问题

1) 提示缺少numpy.random.common
用pyinstaller打包时出错:
failed to execute script 文件名
错误提示:
no module named 'numpy.random.common'
解决方法:
该问题是由于numpy版本导致,降低版本后问题解决:
pip uninstall numpy
pip install numpy==1.16.2        //安装指定版本numpy模块
2) unknown encoding: idna
解决方法,在代码开头导入:
import encodings.idna注:只在被打包的py文件中导入idna即可,其引用的其他文件无需关心
3) 正常打包,但exe程序执行时报FileNotFoundError
报错如下,以 _cffi_backend为例:
FileNotFoundError:[Errno 2] No such file or dirctory:'xx:\\anaconda3\\lib\\site-packages\\_cffi_backend.pyd'
原因是打包的时候这个包没有被隐式打包进去
解决方法:打包时添加如下--hidden-import参数,值为缺少的包的名称。
pyinstaller -F --hidden-import=_cffi_backend  test.py
4) 多进程代码重复启动
将包含多进程的代码打包为exe时,程序重复执行,直至内存耗尽。这是fork()在windows上的缺点。解决办法是在main()最前面执行freeze_support()
from multiprocessing import freeze_support

if __name__ == "__main__":
    freeze_support()
    # 之后再执行多进程
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想将自己写的Python文件或脚本打包可执行的exe文件,可以使用pyinstaller这个Python打包工具。 Pyinstaller支持在Windows和Linux系统下使用。在Windows系统下,你可以将几十KB大小的源文件打包几十兆的exe文件,原因是将程序所引用的库文件也打包在一起了。 打包Python文件exe文件的好处在于,传输源文件或源代码给其他人时,需要配置好一定的环境才能进行编译操作。而打包exe文件后,就像普通的电脑软件一样,可以直接打开并运行,也可以分享给他人使用。 在开始打包之前,建议先进行测试并确保程序正常运行。版本控制方面,推荐选择Python 3.6的32位版本,因为64位的Windows系统向下兼容32位程序。如果不考虑32位系统,也可以直接使用64位版本进行打包,但只能在64位Windows系统上运行。 接下来,我将简要介绍打包的步骤: 1. 安装pyinstaller工具。 2. 运行命令行终端,使用pyinstaller命令将Python文件打包exe文件。 3. 可根据需要,使用特定命令行参数对打包进行配置,例如添加图标文件。 4. 执行打包命令后,pyinstaller会自动将Python文件及其依赖的库文件打包一个独立的exe文件。 请注意,在打包之前,最好先阅读pyinstaller的官方文档,了解更多关于打包的详细信息和常见问题的解答。希望这些信息对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python打包exe可执行文件(全)](https://blog.csdn.net/qq_55957975/article/details/121474022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python打包exe文件_详细操作](https://blog.csdn.net/weixin_45357007/article/details/123861771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值