AttributeError: объект 'модуль' не имеет атрибута 'cbook'

Я пытаюсь запустить простой код, и у меня в Canopy установлены все зависимости для matplotlib и numpy. Тем не менее, я получаю сообщение об ошибке.

    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    x = cv2.imread('jay.jpg')
    plt.imshow(x, cmap = 'gray', interpolation = 'bicubic')
    plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
    plt.show()

Ошибка:

     %run "c:\users\jay\appdata\local\temp\tmppvibq9.py"
     ---------------------------------------------------------------------------
     AttributeError                            Traceback (most recent call last)
     c:\users\jay\appdata\local\temp\tmppvibq9.py in <module>()
     2 import numpy as np
     3 import matplotlib.cbook
     ----> 4 import matplotlib.pyplot as plt
     5 
     6 x = cv2.imread('jay.jpg')

     C:\Users\Jay\AppData\Local\Enthought\Canopy\System\Lib\site-packages\matplotlib\pyplot.py in <module>()
     27 from cycler import cycler
     28 import matplotlib
     ---> 29 import matplotlib.colorbar
     30 from matplotlib import style
     31 from matplotlib import _pylab_helpers, interactive

     C:\Users\Jay\AppData\Local\Enthought\Canopy\System\Lib\site-packages\matplotlib\colorbar.py in <module>()
     30 
     31 import matplotlib as mpl
     ---> 32 import matplotlib.artist as martist
     33 import matplotlib.cbook as cbook
     34 import matplotlib.collections as collections

     C:\Users\Jay\AppData\Local\Enthought\Canopy\System\Lib\site-packages\matplotlib\artist.py in <module>()
     9 import numpy as np
     10 import matplotlib
     ---> 11 import matplotlib.cbook as cbook
     12 from matplotlib.cbook import mplDeprecation
     13 from matplotlib import docstring, rcParams

     AttributeError: 'module' object has no attribute 'cbook'

Зависимости, которые я установил для numpy и matplotlib: 1.) libsvm-3.17.win64-py2.7 2.) pyparsing-2.0.3-1.win64-py2.7 3.) python-dateutil-2.4.2-2. win64-py2.7 4.) pytz-2015.7-1.win64-py2.7 5.) six-1.10.0-1.win64-py2.7 6.) scipy-0.13.3.win64-py2.7 7 .) numpy-MKL-1.9.2-2.win64-py2.7 8.) Matplotlib 1.5.1-win64-py2.7 9.) pip 8.0.2-1.win64-py2.7


person meJayu    schedule 06.02.2016    source источник


Ответы (4)


Я не знаю наверняка, что это вызывает вашу проблему, но вы запускаете свой код в неправильной среде Python: C: \ Users \ Jay \ AppData \ Local \ Enthought \ Canopy \ System \ Вы должны запускать его на C : \ Users \ Jay \ AppData \ Local \ Enthought \ Canopy \ User

См. https://support.enaught.com/entries/23646538-Make-Canopy-User-Python-be-your-default-Python

и http://docs.enoughtt.com/canopy/configure/faq.html#where-are-all-of-the-python-packages-in-my-user-python-environment

person Jonathan March    schedule 07.02.2016

Попробуй это:

  1. Закройте блокнот jupyter и завершите работу ipython.
  2. Перезагрузите терминал
  3. Введите эту команду в Терминале:

export LANG=en_US.UTF-8;export LC_ALL=en_US.UTF-8

  1. Перезапустите свой блокнот ipython / Jupyter сейчас. Работает как часы.
person Sriharsha Sammeta    schedule 22.01.2017
comment
Расскажите, пожалуйста, о том, как шаг 3 поможет пользователю. - person Joe C; 23.01.2017
comment
что это делает? - person mrjrdnthms; 19.07.2017
comment
Это помогло ... Мне бы хотелось понять, почему, в частности, чтобы я мог предложить более постоянное решение. - person Mark McDonald; 10.12.2018
comment
Короче говоря, это перезапустит записную книжку python / Jupyter и установит кодировку текста на UTF-8, что может быть причиной для многих из вас (моя проблема заключалась в том, что я забыл перезагрузить ноутбук после переустановки пакета) - person Y00; 04.11.2019

Вы можете найти, какой файл «matplotlib.py» импортируется, а затем открыть этот файл и проверить, есть ли в нем «cbook» или нет.

import imp
imp.find_module("matplotlib")
person AlokThakur    schedule 06.02.2016
comment
Я мог видеть здесь cbook.py (C: \ Users \ Jay \ AppData \ Local \ Enthought \ Canopy \ User \ Lib \ site-packages \ matplotlib) в папке matplotlib .. все же он не работает. - person meJayu; 07.02.2016

У меня была такая же проблема, и это было из-за этой строки: из sys import stdout я удалил этот импорт, и теперь проблема исчезла

person jiar    schedule 13.06.2019
comment
это может быть комментарий, а не ответ. пожалуйста, прочтите правила этого сообщества. - person dpapadopoulos; 13.06.2019