Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

Проблема с пакетом matplotlib в проекте на pythone 3.6: импорт в PyCharm ведёт к AttributeError: module 'matplotlib' has no attribute 'verbose'

#python #mac #pycharm

                    
Возникла проблема. Работаю на Mac os 10.13.3, среда PyCharm Professional 2017.3.
Python 3.6

При компиляции данной программы: 

import numpy as np
import matplotlib.pyplot as plt

x = np.array([2, 5, -6, 7, 4, 3, 8, 9, 1, -2], dtype=float)
y = np.array([-1, 77, -297, 249, 33, 9, 389, 573, -3, -21],  dtype=float)


def lagranz(x, y, t):
    z = 0
    for j in range(len(y)):
        p1 = 1
        p2 = 1
        for i in range(len(x)):
            if i == j:
                p1 = p1 * 1
                p2 = p2 * 1
            else:
                p1 = p1 * (t - x[i])
                p2 = p2 * (x[j] - x[i])
        z = z + y[j] * p1 / p2
    return z

xnew = np.linspace(np.min(x), np.max(x), 100)
ynew = [lagranz(x, y, i) for i in xnew]

plt.plot(x, y, 'o', xnew, ynew)
plt.grid(True)
plt.show() 


Компилятор выдает такую ошибку: 

Traceback (most recent call last):
File "/Users/Korotkihvm/PycharmProjects/TheLagrangeInterpolationPolynomial/method.py",
line 2, in 
  import matplotlib.pyplot as plt
File "/Users/Korotkihvm/PycharmProjects/TheLagrangeInterpolationPolynomial/venv/lib/python3.6/site-packages/matplotlib/pyplot.py",
line 115, in 
  _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/Users/Korotkihvm/PycharmProjects/TheLagrangeInterpolationPolynomial/venv/lib/python3.6/site-packages/matplotlib/backends/__init__.py",
line 62, in pylab_setup
  [backend_name], 0)
File "/Applications/PyCharm.app/Contents/helpers/pycharm_matplotlib_backend/backend_interagg.py",
line 17, in 
  verbose = matplotlib.verbose
AttributeError: module 'matplotlib' has no attribute 'verbose'


Кто может подсказать в чем проблема?
    


Ответы

Ответ 1



Данная проблема связана с тем, что в новой версии matplotlib сломали обратную совместимость (например, как раз удалили matplotlib.verbose). Соответственно, все приложения, в списке зависимостей которых есть matplotlib, могут столкнуться с данной проблемой. Сейчас практически везде рекомендуют не дожидаться официальных исправлений, а установить одну из предыдущих версий matplotlib. Например, 2.1.2. Сделать это можно с помощью pip: pip uninstall matplotlib pip install matplotlib==2.1.2

Комментариев нет:

Отправить комментарий