对于这个问题,建议先检查一下cupy是否被正确安装,并且在脚本中被正确调用。如果确认无误,可以尝试使用以下两种方法:
例如:--hidden-import=C:\Users\username\AppData\Local\Programs\Python\Python39\Lib\site-packages\cupy\cuda\cudnn.pyd
这样就可以确保cupy被正确引入,避免出现找不到的问题。
可以使用pyinstaller -y -F xxx.py生成.spec文件,然后修改.spec文件中的hiddenimports部分,手动添加需要导入的模块(例如cupy)。然后再使用pyinstaller .\xxx.spec命令进行打包。
例如:
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部分如下图
解决了一部分的报错,但是还是不能运行