美文网首页Python工作笔记程序员
PyInstaller:解决scipy打包失败的问题

PyInstaller:解决scipy打包失败的问题

作者: txfly | 来源:发表于2018-08-10 14:06 被阅读0次

    使用PyInstaller打包包含Scipy的项目后,运行出现“ImportError: DLL load failed: 找不到指定的模块。”错误时,是因为缺少extra-dll里面的文件。

    测试环境:win10 + python3.6 64位 + PyInstaller3.3.1

      File "venv\lib\site-packages\scipy\fftpack\basic.py", line 12, in <module>
      File "C:\Users\..\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
        module = loader.load_module(fullname)
    ImportError: DLL load failed: 找不到指定的模块。
    

    在PyInstaller脚本里添加以下内容即可。

    --add-binary', './venv/lib/site-packages/scipy/extra-dll/*;.'
    

    最终打包脚本如下所示:

    from PyInstaller.__main__ import run
    
    if __name__ == '__main__':
        opts = ['-c',
                '--add-data', 'test.db;.',
                '--add-data', 'test.ini;.',
                '--add-data', 'test.ico;.',
                '--icon', 'test.ico',
                '--add-binary', './venv/lib/site-packages/scipy/extra-dll/*;.',
    
                '--hidden-import', 'PyQt5.QtSerialPort',
                '--hidden-import', 'PyQt5.QtChart',
                '--hidden-import', 'PyQt5.sip',
                '--hidden-import', 'ctypes.wintypes',
                '--hidden-import', 'win32con',
                '--hidden-import', 'sqlalchemy',
                '--hidden-import', 'sqlalchemy.orm',
                '--hidden-import', 'logging.handlers',
                '--hidden-import', 'scipy._lib.messagestream',
    
                '-y', '--noupx', '--clean',
                'test.py']
    
        run(opts)
    
    

    版权声明:本文为「txfly」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://www.jianshu.com/p/918671786669

    相关文章

      网友评论

        本文标题:PyInstaller:解决scipy打包失败的问题

        本文链接:https://www.haomeiwen.com/subject/cbbkbftx.html