python pyinstaller 打包

运行exe报错:unknown encoding: idna
情况是:写了多线程的flask,py文件运行正常,但打包为exe后运行,提示某线程中有unknown encoding: idna。在网上查说在代码前加入

import encodings.idna

我加入后idna标红,一直以为有问题,搞了一通之后索性运行一下,发现不会报错,再次打包。
成功,不再出现问题。

???难道标红不一定有错?惯性思维害死人?

打包的时候如果用的是anaconda,需要再terminal中conda activate -envs(环境名)

**运行exe报错:dll load failed when importing cv2 **

原因:Windows Server 未开启相应服务
解决:选择“我的电脑”——“属性”——“管理”——”添加角色和功能“——勾选”桌面体验“,点击安装,安装之后重启即可。
参考:https://blog.csdn.net/weixin_41713230/article/details/93306530 windows

运行exe报错:加载动态库失败/加载dll失败/dll not found
不提示具体dll
问题:在打包海康和大华的SDK时,exe都因为无法加载dll无法执行
解决:在打包后生成的spec中修改binaries=[(‘F:\www\HQAQupgrade\Project-Merge1018\lib_HK\win’, ‘.’),(‘F:\www\HQAQupgrade\Project-Merge1018\Libs\win64’, ‘.’)],然后重新pyinstaller -F xxx.spec
参考:https://blog.csdn.net/qq_38418314/article/details/113992201

### 使用 PyInstaller 打包完整的 Python 项目为可执行文件 #### 安装 PyInstaller 和依赖项 为了确保打包过程顺利,在开始之前应先更新 `pip` 并安装最新的 `PyInstaller` 版本。这可以通过以下命令完成: ```bash python -m pip install --upgrade pip pip install pyinstaller ``` 此操作可以防止因工具版本过旧而导致的各种潜在问题[^4]。 #### 准备项目结构 对于复杂的 Python 项目,通常会有多个模块和资源文件。确保所有的源代码都位于同一个目录下,并且有一个清晰定义的入口脚本(即包含 `if __name__ == '__main__':` 的那个文件),这是非常重要的。这个入口脚本将是 PyInstaller 构建过程中指定的主要文件[^3]。 #### 基础打包命令 最简单的打包方式是只提供主程序文件名给 PyInstaller 工具。例如,如果项目的启动文件名为 `lark_manager.py`,那么可以在命令行输入如下指令来创建单个可执行文件: ```bash pyinstaller -F lark_manager.py ``` 这里的 `-F` 参数表示生成单一的可执行文件而不是整个目录树。 #### 多文件处理 当存在多个需要一起被打包进最终应用程序中的 `.py` 文件时,可以直接在命令后面追加这些额外的文件路径。不过需要注意的是,这种方式适用于那些确实会在同一进程中被调用的情况;如果是相互独立的服务,则应该分别对待它们并单独构建各自的可执行文件[^2]。 #### 配置 spec 文件优化打包效果 有时默认设置可能无法满足特定需求,这时就需要编辑由 PyInstaller 自动生成的 `.spec` 文件来进行更精细控制。该配置文件包含了关于如何收集数据、隐含导入哪些库等方面的信息。修改完成后重新运行带有新参数的 PyInstaller 即可应用更改。 #### 测试与分发 一旦成功编译出了期望的结果——无论是单个还是多个可执行文件——务必对其进行充分测试以验证其行为是否符合预期。确认无误之后就可以将其部署到目标环境中供他人使用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值