pyinstaller 打包含有资源文件(dll)的方法,详细过程

本文详细介绍如何使用PyInstaller将包含多个模块和DLL依赖的Python项目打包成独立可执行文件。通过具体实例,展示了文件组织、命令行参数及spec文件的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装pyinstaller

pass

二、先上个栗子:

我的文件组成: callMain.py   discuz.py  scrpyIp.py  tools.py  ui_main.py yundama.py  yundamaAPI.dll

其中,callMain.py 是函数入口, yundama.py的运行需要加载yundamaAPI.dll,其余的.py文件都是供callMain.py调用的。

好了,上步骤:

1、把所有的文件都放在一个文件夹里面。

2、执行:

pyinstaller --clean -F callMain.py --add-binary=D:\WinPyQt5.9-32bit-3.5.3.1\PyQt5-codes\pack\yundamaAPI.dll;''

这样就会看到dist文件里面有我的运行文件啦!

或者你也可以直接执行spec文件:

pyinstaller --clean -F   callMainspec

三、pyinstaller 参数介绍

 

 

 

 

PyInstaller 是一个用于将 Python 应用程序打包成独立可执行文件的工具,它默认会包含所有 Python 解释器及其库所需的文件。然而,如果某个模块依赖于特定的 .dll 文件,这些系统级别的动态链接库通常不会被 PyInstaller 自动包含。 当遇到 dll 文件未被打包的情况,可能是以下几个原因: 1. **缺失查找路径**:PyInstaller 可能无法找到那些不在标准搜索路径下的.dll 文件。你需要手动添加依赖的 dll 到 include 配置目录或是指定一个自定义的 hook 文件。 2. **DLL 冲突**:有些 .dll 文件可能与目标系统的版本不兼容,或者与其他应用程序冲突。确保打包的是针对目标环境编译的正确版本。 3. **第三方库问题**:某些第三方库可能会有隐含的.dll 依赖,如果没有正确处理,可能导致打包失败。检查是否需要额外安装 Visual C++ Redistributable 或者修改库的构建设置。 4. **忽略规则**:通过 `hiddenimports` 或 `exclude-modules` 配置选项,如果你故意排除了某个库,可能就会错过相关的.dll 包。 要解决这个问题,你可以尝试: - 检查并调整 PyInstaller 的配置文件(如 spec 文件),确保正确的 dll 被添加到 `hiddenimports` 中。 - 使用 `--onefile` 或 `--onedir` 标志打包,并考虑 `--add-data` 参数来明确指定依赖的.dll 文件。 - 如果是系统级的.dll,可能需要将其放在 target 文件夹下,或创建一个自定义的 hook 来处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值