用pyarmor打包py文件,打包后运行exe报错
ImportError: DLL load failed: 找不到指定的程序
Traceback (most recent call last):
File "" , line 3, in
File "" , line 20, in
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "" , line 1, in
File "" , line 5, in
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "" , line 1, in
File "" , line 5, in
File "PyInstaller\loader\pyimod02_importers.py", line 499, in exec_module
File "" , line 1, in
File "" , line 12, in
ImportError: DLL load failed: 找不到指定的程序。
[9336] Failed to execute script 'test' due to unhandled exception!
尝试过重新打包,确定打包步骤正确
复制pyzbar和一些依赖里的dll文件,都无效
求解答
望采纳
这个错误通常是由于在打包时使用的Python环境与在运行时使用的Python环境不一致导致的。例如,在打包时使用的Python环境是64位的,但在运行时使用的Python环境是32位的,这样就会导致找不到指定的程序的错误。
为了解决这个问题,可以尝试以下几种方法:
这个很有可能是pyarmor与你用到的python库不兼容。
检查下你的所使用的库。
可以降低、或者升级相应库的版本。
ImportError: DLL load failed: 找不到指定的程序。
[9336] Failed to execute script 'test' due to unhandled exception!
报错的含义:
ImportError:DLL加载失败:找不到指定的程序。
[9336]由于未处理的异常,无法执行脚本“测试”!
这类原因较多,但大多是这种情况:
1、Pyarmor打包的环境和实际代码运行的环境不一样
2、函数库本身有问题,导致调用异常。
3、依赖包版本不符,导致调用异常。
解决方法
1、将打包环境和运行代码环境配置统一,注意路径不要含中文、空格等特殊字符情况
2、重新安装该函数库。
3、检查该依赖包的版本(过高或过低)。
是不是找不到路径名
pyimod02_importers.py程序499行具体是哪个dll找不到?,你是使用全路径了吗?
在打包的时候需要确定打包的环境和实际运行的环境是否一致,如果不一致可能会出现上述的错误。
你可以尝试在打包的时候使用「--hidden-import」参数将依赖的模块列举出来,再尝试打包。例如:
pyarmor pack --hidden-import=pyzbar --hidden-import=xlib test.py
如果还是不行,可以尝试在打包的时候使用「--debug」参数来查看更详细的错误信息,再根据提示信息来修改。
此外,你也可以尝试在打包的时候使用「--onefile」参数,将所有的文件打包到一个文件中,这样可以避免一些文件丢失的问题。例如:
pyarmor pack --onefile --hidden-import=pyzbar --hidden-import=xlib test.py
希望以上信息能够帮助你解决问题。如果还有疑问,可以再提出来,我会尽力帮助你解决。