OSX 中 skimage 的 Qt 问题
Posted
技术标签:
【中文标题】OSX 中 skimage 的 Qt 问题【英文标题】:Qt issues with skimage in OSX 【发布时间】:2017-09-30 22:50:43 【问题描述】:我很难找到正确的步骤来让 skimage(以及它的 QT 组件)在 OSX 上运行。我将此示例用于 skimage:
import matplotlib
matplotlib.use('TkAgg')
from skimage import data
from skimage.viewer import ImageViewer
image = data.coins()
viewer = ImageViewer(image)
viewer.show()
哪个产生了这个错误:
/Users/marcleonard/.virtualenvs/marcleonard-zP9HSj98/lib/python3.4/site-packages/skimage/viewer/__init__.py:6: UserWarning: Viewer requires Qt
warn('Viewer requires Qt')
Traceback (most recent call last):
File "/Users/marcleonard/Desktop/image-api/image-api.py", line 7, in <module>
viewer = ImageViewer(image)
File "/Users/marcleonard/.virtualenvs/marcleonard-zP9HSj98/lib/python3.4/site-packages/skimage/viewer/viewers/core.py", line 93, in __init__
init_qtapp()
File "/Users/marcleonard/.virtualenvs/marcleonard-zP9HSj98/lib/python3.4/site-packages/skimage/viewer/utils/core.py", line 28, in init_qtapp
QApp = QtWidgets.QApplication.instance()
AttributeError: 'QtGui_cls' object has no attribute 'QApplication'
为了安装 Qt,我使用了brew install python cmake qt
(不过,大概这是 Qt5,也许这就是问题所在?)
我的 pipenv 图表如下所示:
scikit-image==0.13.1
- matplotlib [required: >=1.3.1, installed: 2.0.2]
- cycler [required: >=0.10, installed: 0.10.0]
- six [required: Any, installed: 1.11.0]
- numpy [required: >=1.7.1, installed: 1.13.3]
- pyparsing [required: >=1.5.6,!=2.0.4,!=2.1.6,!=2.1.2, installed: 2.2.0]
- python-dateutil [required: Any, installed: 2.6.1]
- six [required: >=1.5, installed: 1.11.0]
- pytz [required: Any, installed: 2017.2]
- six [required: >=1.10, installed: 1.11.0]
- networkx [required: >=1.8, installed: 2.0]
- decorator [required: >=4.1.0, installed: 4.1.2]
- pillow [required: >=2.1.0, installed: 4.2.1]
- olefile [required: Any, installed: 0.44]
- PyWavelets [required: >=0.4.0, installed: 0.5.2]
- numpy [required: >=1.9.1, installed: 1.13.3]
- scipy [required: >=0.17.0, installed: 0.19.1]
- numpy [required: >=1.8.2, installed: 1.13.3]
- six [required: >=1.7.3, installed: 1.11.0]
有什么想法可能是错的吗?
【问题讨论】:
【参考方案1】:我通过使用 pip3 安装 PyQt4 解决了同样的问题:
sudo pip3 install PyQt4
在 PyCharm 2017.3.4 中,直到我更改了解释器设置,这些更改才被应用:
设置 -> 项目: -> 项目解释器 -> 安装 (+) -> 可用包 -> PyQt4 -> 安装包
PyQt4 需要 Python 3.4。 PyQt5 可以与较新版本的 Python 一起使用,但 PyQt5 的结构与其早期版本不同。 PyQt4 的 QtGui
模块已拆分为 PyQt5 的 QtGui
、QtPrintSupport
和 QtWidgets
模块。 ImageViewer
依赖于已移动到另一个模块的 QFileDialog
,并且无法与 PyQt5 一起正常工作。
【讨论】:
以上是关于OSX 中 skimage 的 Qt 问题的主要内容,如果未能解决你的问题,请参考以下文章
from skimage.viewer.qt.QtCore import Qt ImportError: No module named QtCore