zoukankan      html  css  js  c++  java
  • ModuleNotFoundError: No module named 'PyQt4',Spyder 导入 matplotlib 错误

    最近刚学了matplotlib,想在anaconda的spyder里耍一耍

    代码如下(其实不重要,主要是导入了matplotlib.pyplot报错)

    # -*- coding: utf-8 -*-
    """
    Created on Thu Jul 12 21:36:51 2018
    
    @author: asus
    """
    print("b")
    
    import matplotlib.pyplot as plt
    print("a")
    
    a= [1,2,3]
    b= [1,2,3]
    
    plt.plot(a,b)
    plt.show()

    错误提示信息:

      File "C:UsersasusAnaconda3libsite-packagesmatplotlibackendsqt_compat.py", line 157, in <module>
        from PyQt4 import QtCore, QtGui
    
    ModuleNotFoundError: No module named 'PyQt4'

    问题出在qt_compat.py文件

    错误提示找不到PyQt4,直观解决方法是安装PyQt4包,但经过若干次(耗时两三天)的各种查资料,各种尝试,均以失败告终

    基本矛盾是:anaconda环境下默认配置了PyQt5,而matplotlib默认调用PyQt4,即版本问题

    最后回到qt_compat.py文件

    if rcParams['backend'] == 'Qt5Agg':
        QT_RC_MAJOR_VERSION = 5
    elif rcParams['backend'] == 'Qt4Agg':
        QT_RC_MAJOR_VERSION = 4

    注意到以上代码,试更改默认版本


    解决方案

    在qt_compat.py文件中添加代码:

    rcParams['backend']='Qt5Agg'

    即:

    """ A Qt API selector that can be used to switch between PyQt and PySide.
    """
    
    from __future__ import (absolute_import, division, print_function,
                            unicode_literals)
    
    import six
    
    import os
    import logging
    import sys
    from matplotlib import rcParams
    
    #rcParams['backend']='PyQt5'    # added by chen to adapt the matplotlib
    rcParams['backend']='Qt5Agg'    # added by chen to adapt the matplotlib
    #print("----------------"+rcParams['backend'])
    
    _log = logging.getLogger(__name__)

    (请忽略注释行)

    保存,运行原文件,成功!

    ---恢复内容结束---

  • 相关阅读:
    第五小节之JAVA IO流
    第四小节之Java 集合类
    初学的重点
    第三小节之Java API
    实践周java基础软件开发app之五子棋
    出栈合法性
    Python介绍
    Ubuntu主题美化篇
    Ubuntu16.04比较好的一系列软件安装介绍
    Ubuntu使用Shadow socks-qt5
  • 原文地址:https://www.cnblogs.com/standingby/p/9355914.html
Copyright © 2011-2022 走看看