如何解决ImportError:库未加载,dyld链接混乱
因此,我试图使用Py2app导出使用tkinter并写入excel的python脚本,但出现此错误;
ImportError: dlopen(/Users/James/Documents/Python/Projects/Budget/dist/automating_finances0.app/Contents/Resources/lib/python3.8/lib-dynload/PIL/_imaging.so,2):
Library not loaded: @loader_path/.dylibs/libopenjp2.2.3.1.dylib
Referenced from: /Users/James/Documents/Python/Projects/Budget/dist/automating_finances0.app/Contents/Resources/lib/python3.8/lib-dynload/PIL/_imaging.so
Reason: image not found
当我在otool -L
上进行contents/macOS/automating_finances0
时,我得到了;
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0,current version 21.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0,current version 1213.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0,current version 283.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0,current version 1151.16.0)
我研究了@ loader_path,@ rpath和dyld链接,但似乎无法弄清楚。我不确定为什么我的应用程序正在上面的文件夹中查找依赖项,而不是myapp/contents/frameworks etc
所在的libopenjp2.2.3.1.dylib
所在的位置?我尝试通过这样做来更改搜索路径;
install_name_tool -change /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa Users/James/Documents/Python/Projects/Budget/dist/automating_finances0.app/Contents/frameworks Users/James/Documents/Python/Projects/Budget/dist/automating_finances0.app/Contents/macOS/automating_finances0
但这绝对不起作用,我不确定是什么可可粉?新手,请多多帮助。
解决方法
结果是我在错误的位置查看,错误出在_imaging.so。我没有考虑这个问题,因为我没有将.so文件识别为动态库。使用otool -L _imaging.so
显示缺少的依赖关系和宾果游戏,其中包括libopenjp2.2.3.1.dylib
。我最终只是将myapp/contents/frameworks
的内容复制到usr/local/lib
上似乎工作正常,尽管这似乎不是一个可靠的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。