Python2.7环境下PyQt5报‘Image not found’错误求助
解决Python2.7环境下PyQt5动态库加载失败的问题
这种ImportError导致的动态库找不到的问题我之前也碰到过,结合你描述的“之前正常运行、Python3.6环境没问题”的情况,给你几个实用的排查和修复方向:
重新安装PyQt5(针对Python2.7)
大概率是PyQt5的安装文件出现了损坏或者路径关联异常。先卸载现有版本,再重新安装:pip2 uninstall PyQt5 -y pip2 install PyQt5==5.15.4选择5.15.4版本是因为它是最后一批支持Python2.7的PyQt5版本,兼容性更稳定。如果你的环境用了虚拟环境,记得先激活对应的Python2.7虚拟环境再执行命令。
修复动态库的rpath配置
错误提示里的@rpath是动态库的路径标识,可能是QtWidgets.so里的rpath指向失效了。可以用系统工具来修复:- 先查看当前
QtWidgets.so的依赖路径:otool -L /Library/Python/2.7/site-packages/PyQt5/QtWidgets.so - 找到系统中Qt5库的实际路径(比如通过
find / -name "QtWidgets.framework" 2>/dev/null查找),然后用install_name_tool添加正确的rpath:# 假设你的Qt5库在/usr/local/opt/qt@5/lib路径下 install_name_tool -add_rpath /usr/local/opt/qt@5/lib /Library/Python/2.7/site-packages/PyQt5/QtWidgets.so
- 先查看当前
检查系统Qt5库是否完好
可能是最近系统更新、软件卸载等操作导致Qt5的框架文件丢失或路径变更。先手动确认QtWidgets.framework是否存在:find / -name "QtWidgets.framework" 2>/dev/null如果找不到这个文件,需要重新安装支持Python2.7的Qt5版本(比如通过Homebrew安装
qt@5:brew install qt@5)。临时配置环境变量测试
可以先通过环境变量指定Qt5库的路径,测试是否能正常运行:# 替换成你实际的Qt5库路径 export DYLD_LIBRARY_PATH=/usr/local/opt/qt@5/lib:$DYLD_LIBRARY_PATH # 然后运行你的脚本 python2.7 /Users/development/Desktop/python_workspace/mail-sorter/process.py如果测试有效,可以把这个环境变量添加到你的shell配置文件中(比如
~/.bash_profile或~/.zshrc),避免每次都手动配置。
内容的提问来源于stack exchange,提问作者Sleepy-Z
相关产品推荐
相关产品推荐

