问题:
pyqt5下开发的时候,遇到了一个这样的问题。
Traceback (most recent call last):
File “test.py”, line 3, in
from PyQt5.QtWebEngineWidgets import *
ImportError: dlopen(/Users/caoyin/anaconda3/lib/python3.7/site-packages/PyQt5/QtWebEngineWidgets.so, 2): Library not loaded: @rpath/QtWebEngineCore.framework/Versions/5/QtWebEngineCore
Referenced from: /Users/caoyin/anaconda3/lib/python3.7/site-packages/PyQt5/QtWebEngineWidgets.so
Reason: image not found
代码:
# minimal QWebEngine example. from PyQt5.QtWidgets import QApplication from PyQt5.QtWebEngineWidgets import * from PyQt5.QtCore import QUrl app = QApplication( [] ) view = QWebEngineView() view.load( QUrl( "http://www.pyinstaller.org" ) ) view.show() app.exec_()
分析:
从log上来看,是不兼容问题导致的,这个该这么办呢?首先映入脑海的就是查看python和qt5的版本,发现这两个版本都是最新的了。没发现什么异常呢?咋办吧?这种问题,看来要问度娘和谷歌了。度娘也不是一直不给力,你看这次,我就从他这边找到答案了。原来,还是pyqt5的版本问题:Note that for v5.11 and later the 32-bit Windows wheels do not contain the WebEngine modules.
接下来解决方法就明确了,两种方法都可以,亲测有效:
【方法一】 指定安装5.10.1版本的pyqt5
pip install pyqt5==5.10.1
【方法二】 单独安装WebEngine,安装命令为:
pip install PyQtWebEngine
思考:
初级程序猿: 解决bug,首先要看log,然后是搜索,最后才是看代码,因为对绝大多数的人来说,还没有达到一眼就能把bug看出来的情况。最后实在没办法了,那就慢慢的的看log来定位了。
高级程序猿: 看一下log,就喔的一声,我知道了。三分钟内新版本出来了。