Pyinstaller打包带有cupy的exe、运行后报错

img


运行exe后报错价在cupy失败
尝试过--hidden-import cupy 但是无效
求帮助

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    对于这个问题,建议先检查一下cupy是否被正确安装,并且在脚本中被正确调用。如果确认无误,可以尝试使用以下两种方法:

    1. 添加--hidden-import参数时指定cupy的详细路径

    例如:--hidden-import=C:\Users\username\AppData\Local\Programs\Python\Python39\Lib\site-packages\cupy\cuda\cudnn.pyd

    这样就可以确保cupy被正确引入,避免出现找不到的问题。

    1. 使用spec文件手动指定需要导入的模块

    可以使用pyinstaller -y -F xxx.py生成.spec文件,然后修改.spec文件中的hiddenimports部分,手动添加需要导入的模块(例如cupy)。然后再使用pyinstaller .\xxx.spec命令进行打包。

    例如:

    -- mode: python ; coding: utf-8 --

    block_cipher = None

    a = Analysis(['xxx.py'], pathex=['C:\Users\username\xxx\'], binaries=[], datas=[], hiddenimports=['cupy'], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='xxx', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], upx_include=[], runtime_tmpdir=None, console=True )

    这两种方法都可以解决找不到cupy的问题。如果还有其他问题,请提供详细的报错信息,以便更好地解决问题。


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

没有找到cudnn.pyd·,·用cudnn.py替代后修改.spec文件中的hiddenimports部分如下图

img

解决了一部分的报错,但是还是不能运行

img