霜龍 2024-02-28 13:49 采纳率: 16.7%
浏览 29
已结题

使用pyinstaller打包项目文件的时候出现Most likely this dynlib/dll was not found when the application was frozen的问题

求助:installer打包项目里面的main.py的时候,打包得到的exe出现以下问题。打包方法使用 pyinstaller -F main.py
在之前出现了模块缺失的问题,因此在spec文件里面增加了hiddenimports=['loguru','torch','xml.dom']后使用pyinstaller -F main.spec打包后,模块缺失问题已经被解决。但是打开exe的时候又出现以下的问题:

img

经过查看地址D:\package_AOI\aoiDevice\dist\main\base_library.zip\utils\dll\x64\MVSDKmd.dll确实没有这个文件
因此我将相关文件复制进了压缩包,但是打开exe依旧出现报错

img

不知道有没有伙伴遇到相同或类似的问题,给予我一些解决问题的方向的建议。

  • 写回答

23条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-28 13:50
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    在使用 PyInstaller 打包含有第三方 DLL 依赖的 Python 项目时,遇到 Failed to load dynlib/dll 的错误提示,通常是由于动态链接库 (DLL) 文件未能正确地包含到最终的可执行文件中。根据您提供的信息,程序在运行时无法找到 MVSDKmd.dll 这个动态链接库。

    解决这个问题有以下几种可能的方法:

    1. 添加数据文件:确保必要的 DLL 文件被 PyInstaller 正确识别并打包进最终的 exe 中。您可以通过修改 spec 文件来显式指定这个 DLL 应该作为数据文件包含进来。例如,在 .spec 文件中的 datas 部分添加:
    a = Analysis(['main.py'],
                 pathex=['.'],
                 binaries=[('utils/dll/x64/MVSDKmd.dll', '.')], # 添加 dll 到打包目录下
                 ...
                 datas=[],
                 ...
                 )
    
    1. 使用 --add-binary 选项:如果您直接从命令行打包,可以使用 --add-binary 参数:
    pyinstaller --onefile --add-binary "utils/dll/x64/MVSDKmd.dll;." main.py
    
    1. 将 DLL 放入系统路径:另一种方法是将 DLL 文件放置在一个已知的系统路径(如 Windows 系统目录)中,这样程序在运行时就可以自动查找并加载 DLL。

    2. 配置 hook 文件:对于一些复杂的情况,可能需要编写一个自定义的 hook 文件来指导 PyInstaller 如何处理特定模块或 DLL。创建一个名为 hook-{module_name}.py 的文件,并在其中加入相应的导入规则。

    3. 检查 PATH 变量:如果您的应用程序在运行时通过相对路径寻找 DLL,请确保在解压后的环境中,此相对路径有效。

    综上所述,您应该尝试第一种或第二种方法,确保 MVSDKmd.dll 被打包进 exe 文件内或者与 exe 同目录,以便程序在运行时能找到并加载它。同时,请确保所有依赖的 DLL 版本和您的应用程序兼容。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 创建了问题 2月28日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)