Pyinstaller打包exe文件解决指南

embedded/2024/10/20 0:49:04/

打包命令

打包 Python 文件

输入如下格式的命令即可

默认命令

Pyinstaller 文件名.py

Pyinstaller -option1 -option2 -... 要打包的文件

Pyinstaller 文件名.pyPyinstaller -option1 -option2 -... 要打包的文件

参数选项比较多,这里我列一个表:

参数选项描述
-F, -onefile只生成一个单个文件(只有一个 exe 文件)
-D, -onedir打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,这样代码易于维护
-K, –tk在部署时包含 TCL/TK
-a, -ascii

不包含编码

在支持 Unicode 的 Python 版本上默认包含所有的编码

-d, -debug产生 debug 版本的可执行文件
-w, -windowed, -noconsole

使用 Windows 子系统执行

当程序启动的时候不会打开命令行(只对 Windows 有效)

-c, -nowindowed, -console

使用控制台子系统执行(默认)(只对 Windows 有效)

pyinstaller -c  xxxx.py

pyinstaller xxxx.py --console

-s, -strip

可执行文件和共享库将 run through strip

注意 Cygwin 的 strip 往往使普通的 win32 Dll 无法使用

-X, -upx如果有 UPX 安装(执行 Configure.py 时检测),会压缩执行文件( Windows 系统中的 DLL 也会)
-o DIR, -out=DIR

指定 spec 文件的生成目录,如果没有指定,而且当前目录是 PyInstaller 的根目录,会自动创建一个用于输出( spec 和生成的可执行文件)的目录

如果没有指定,而当前目录不是 Pyinstaller 的根目录,则会输出到当前的目录下

-p DIR, -path=DIR

设置导入路径(和使用 PYTHONPATH 效果相似)

可以用路径分割符( Windows 使用分号,Linux 使用冒号)分割,指定多个目录

也可以使用多个 -p 参数来设置多个导入路径,让 pyinstaller 自己去找程序需要的资源

-i -icon=<FILE.ICO>将 file.ico 添加为可执行文件的资源(只对 Windows 系统有效),改变程序的图标
-i -icon=<FILE.EXE,N>将 file.exe 的第 n 个图标添加为可执行文件的资源(只对 Windows 系统有效)
-v FILE, -version=FILE将 verfile 作为可执行文件的版本资源(只对 Windows 系统有效)
-n NAME, -name=NAME

可选的项目(产生的 spec 的)名字

如果省略,第一个脚本的主文件名将作为 spec 的名字

 

打完包之后可能出现错误

报错信息:

=============================================================

A RecursionError (maximum recursion depth exceeded) occurred.

For working around please follow these instructions

=============================================================

1. In your program's .spec file add this line near the top::

     import sys ; sys.setrecursionlimit(sys.getrecursionlimit() * 5)

2. Build your program by running PyInstaller with the .spec file as

   argument::

     pyinstaller myprog.spec

3. If this fails, you most probably hit an endless recursion in

   PyInstaller. Please try to track this down has far as possible,

   create a minimal example so we can reproduce and open an issue at

   https://github.com/pyinstaller/pyinstaller/issues following the

   instructions in the issue template. Many thanks.

Explanation: Python's stack-limit is a safety-belt against endless recursion,

eating up memory. PyInstaller imports modules recursively. If the structure

how modules are imported within your program is awkward, this leads to the

nesting being too deep and hitting Python's stack-limit.

With the default recursion limit (1000), the recursion error occurs at about

115 nested imported, with limit 2000 at about 240, with limit 5000 at about

660.

————————————————

你打包目录下会生成如下文件

打开你的main.spec文件

在顶端添加代码:

import sys

sys.setrecursionlimit(sys.getrecursionlimit() * 5)

import syssys.setrecursionlimit(sys.getrecursionlimit() * 5)

然后在运行命令(对应的文件名)

pyinstaller 你的文件名.spec

pyinstaller 你的文件名.spec

然后就完成了

打完包之的运行闪退问题:

先安装一个新的第三方库ordereddict

安装命令:

pip install ordereddict

pip install ordereddict

注意自己python代码的文件引入路径(确保对应的路径下有对应的文件,我这里设置的是根目录下)

重新打包

pyinstaller 你的文件名.spec

pyinstaller 你的文件名.spec

完成之后

打开对应的文件夹双击就可以了(这里以我的项目为例)


http://www.ppmy.cn/embedded/43499.html

相关文章

手撕C语言题典——返回倒数第 k 个节点(面试题)

前言 依旧力扣&#xff0c;这道题之前有做过类似的题&#xff0c;今天给一个新的思路去做&#xff0c;应对面试时候遇到的奇奇怪怪的问题 面试题 02.02. 返回倒数第 k 个节点 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/kth-node-from-end-of-list-…

前后端项目部署和解决跨域

文章目录 一.前端项目部署1.1 上传前端文件1.2 项目部署1.3 解决跨域1.3.1 什么是跨域1.3.2 配置文件 二.后端项目部署2.1 上传后端文件2.2 项目部署2.3 解决跨域 一.前端项目部署 1.1 上传前端文件 站点创建好了&#xff0c;进入到站点的目录。 然后把它默认的文件删掉。 你…

Git之创建完美提交

创建完美提交 是否还在把Git当中一个无聊的备份系统吗&#xff1f;是否还在git add .?只要发生修改就塞进提交里&#xff0c;提交会失去很多价值。提交和提交之间的分界很随意。之后再看这些提交&#xff0c;就像再家里翻箱倒柜的找东西&#xff0c;很难找到想要的东西。 整…

简单几步构建设企业流媒体服务器

简单几步构建设企业流媒体服务器 在企业应用中&#xff0c;涉及到视频服务时&#xff0c;直接的应用要求即是视频的实时查看&#xff01;如果使用各大平台的流媒体服务&#xff0c;对于针对设备的视频服务&#xff0c;如IPC的各种应用场景&#xff0c;在这个卷的时代&#xff…

Raven2掠夺者2渡鸦2角色创建、游戏预下载、账号怎么注册教程

《渡鸦2》&#xff08;Raven 2&#xff09;是由韩国开发的一款大型多人在线角色扮演游戏&#xff08;MMORPG&#xff09;类型的手游&#xff0c;作为前作《Raven》的续集&#xff0c;继承并发展了其黑暗奇幻世界观&#xff0c;同时在游戏设计和内容上进行了大量创新。游戏预计于…

【教学类-58-06】黑白三角拼图06(1页3张彩色黑点卡片,一种宫格36张,适合一个班级一次操作)

作品展示 背景需求 【教学类-58-05】黑白三角拼图05&#xff08;2-10宫格&#xff0c;每个宫格随机1张-6张&#xff0c;带空格纸&#xff0c;1页3张黑白3张白卡&#xff09;-CSDN博客文章浏览阅读343次&#xff0c;点赞10次&#xff0c;收藏6次。【教学类-58-05】黑白三角拼图…

案例题(第二版)

案例题目 信息系统架构设计 基本概念 信息系统架构&#xff08;ISA&#xff09;是对某一特定内容里的信息进行统筹、规划、设计、安排等一系列的有机处理的活动。特点如下 架构是对系统的抽象&#xff0c;它通过描述元素、元素的外部可见属性及元素之间的关系来反映这种抽象…

世界改变了我?还是我在改变着这个世界?-教育的魅力

目录 一、背景二、过程1.拥抱不确定性的心态2.应对变数的积极3.螺旋向上的能力4.突破自我的意志 三、总结 一、背景 现在这个时代唯一确定的就是不确定&#xff0c;社会发展太快了&#xff0c;尤其是中国的发展速度&#xff1b;大国生态人口生态。 有时候隐约中我自己也觉得和…