junboli 2023-09-18 21:20 采纳率: 50%
浏览 11
已结题

pyinstaller 打包pyqt5项目,报DLL load failed

img

img


我项目里有多个py文件,我用pyinstaller 打包main.py成exe文件后,运行一直报Dll load failed找不到的错误,
我试了其它项目如果项目只有一个py文件的话,用pyinstaller打包是没有问题的。不知到问题出在哪里?

  • 写回答

11条回答 默认 最新

  • 夜深人静的码农 2023-09-18 22:02
    关注

    用老一点的pyinstaller。

    pip install pyinstaller==5.1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 疯狂小赤兔 2023-09-18 21:37
    关注

    引用 皆我百晓生 小程序回复内容作答:
    出现"Dll load failed"错误通常是由于某个依赖库(DLL文件)没有被正确地打包进入exe文件中所引起的。在打包过程中,PyInstaller会尽可能地自动识别和打包依赖的库文件,但有时候会出现一些问题。下面是一些可能解决问题的方法:

    1. 使用--hidden-import参数:尝试找出哪个库文件没有被正确地打包进exe文件中,然后使用--hidden-import参数手动添加这个库文件的引入。例如,如果你发现缺少了pyqt5.QtGui模块,可以使用以下命令来打包你的项目:

      pyinstaller --hidden-import=pyqt5.QtGui main.py
      
    2. 检查PyInstaller版本:确保你正在使用最新版本的PyInstaller。你可以通过以下命令来检查PyInstaller的版本:

      pyinstaller --version
      

      如果不是最新版本,可以通过以下命令来更新到最新版本:

      pip install --upgrade pyinstaller
      
    3. 检查依赖库的import语句:确保在你的代码中引入依赖库的方式是正确的。在使用PyInstaller打包时,它会分析你的代码并尝试找出需要打包的库文件,但如果你的import语句不符合规范,可能会导致打包时的问题。请确保在你的代码中使用正确的import语句,并遵循库的命名规则。

    4. 使用虚拟环境:有时候,系统中已安装的其他库可能会导致PyInstaller无法正确识别/打包所需的库文件。在这种情况下,尝试在一个干净的虚拟环境中运行PyInstaller来打包你的项目。

    希望这些方法可以帮助你解决问题。如果问题仍然存在,请提供更多详细的错误信息,这样有助于进一步排查和解决问题。

    评论 编辑记录
  • Leodong. 2023-09-18 21:30
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    这个问题可能是由于缺少某些DLL文件或者路径不正确导致的。你可以尝试以下方法解决这个问题:

    1、 确保你的项目中所有需要的DLL文件都已经被正确地打包到了exe文件中。你可以在项目根目录下创建一个名为"dlls"的文件夹,将所有需要的DLL文件放入其中。然后在使用pyinstaller打包时,使用--add-data参数将这些DLL文件添加到打包过程中:

    pyinstaller --onefile --add-data "dlls;dlls" main.py
    

    2、 如果你使用的是PyQt5,确保你的系统中已经安装了相应的运行时库。对于Windows系统,你需要安装Visual C++ Redistributable for Visual Studio。你可以从这里下载并安装:https://aka.ms/vs/16/release/vc_redist.x64.exe

    3、 如果问题仍然存在,你可以尝试在打包时使用--hidden-import参数来手动指定可能缺失的DLL文件。例如:

    pyinstaller --onefile --hidden-import=your_missing_dll_name main.py
    

    your_missing_dll_name替换为实际缺失的DLL文件名(不包括扩展名)。

    希望这些建议能帮助你解决问题。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论 编辑记录
  • IT工程师_二师兄 2023-09-18 21:39
    关注

    你把报错代码发给我看一下

    评论
  • 忧伤的玩不起 2023-09-18 23:22
    关注

    看下你的main代码。

    评论
  • 太极-彼岸 2023-09-19 06:09
    关注
    
    
    pyinstaller --hidden-import=pyqt5.QtGui main.py
    

    -

    
    pyinstaller --version
    
    
    评论
  • 醉颜凉 运维领域新星创作者 2023-09-19 07:57
    关注
    评论
  • IT技术分享社区 数据库领域优质创作者 2023-09-19 10:17
    关注

    该回答引用chatgpt
    在Python中,您可以使用PyInstaller来打包包含DLL程序集的应用程序。以下是一些步骤:

    1. 安装PyInstaller:您可以使用pip安装PyInstaller,方法是在命令行中输入“pip install pyinstaller”。

    2. 编写Python脚本:编写您的Python脚本,并将所需的DLL程序集放在与脚本相同的目录下。

    3. 打包应用程序:在命令行中进入脚本所在的目录,并执行以下命令:

      pyinstaller --onefile your_script.py
      

      这将创建一个独立的可执行文件,其中包含您的Python脚本和所需的DLL程序集。

    4. 运行应用程序:在dist目录中找到应用程序,并双击运行它。

    请注意,如果您的应用程序需要其他依赖项(例如Python模块或第三方库),您需要使用PyInstaller的其他选项来包含它们。例如,您可以使用"--hidden-import"参数来告诉PyInstaller打包一个隐藏的依赖项。

    另外,如果您需要在不同平台上打包应用程序(例如Windows和MacOS),您需要在相应平台上运行PyInstaller,并使用不同的选项和参数。

    评论
  • 急速光粒 2023-09-19 10:37
    关注

    多个文件打包pyinstaller用的什么版本?5.13.0最新版应该ok的。具体打包的文件和打包命令如何做的?这样有点不好判断。

    评论
  • 数据大魔王 2023-09-19 10:44
    关注

    尝试手动将特定的依赖项添加到 PyInstaller 打包中。使用 --add-data 和 --add-binary 选项来指定哪些文件应包含在可执行文件中。

    pyinstaller --onefile --add-data "path/to/library.dll;." main.py
    

    这将把指定的 DLL 文件添加到可执行文件中。

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-20 00:17
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 9月18日

悬赏问题

  • ¥15 vue引入sdk后的回调问题
  • ¥15 求一个智能家居控制的代码
  • ¥15 ad软件 pcb布线pcb规则约束编辑器where the object matpcb布线pcb规则约束编辑器where the object matchs怎么没有+15v只有no net
  • ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
  • ¥20 求各位能用我能理解的话回答超级简单的一些问题
  • ¥15 yolov5双目识别输出坐标代码报错
  • ¥15 这个代码有什么语法错误
  • ¥15 给予STM32按键中断与串口通信
  • ¥15 使用QT实现can通信
  • ¥15 关于sp验证的一些东西,求告知如何解决,