Вы не должны были называть свой файл matplotlib.py
. Посмотрите, что происходит, когда вы делаете это:
$ echo "print('importing myself'); import matplotlib" > matplotlib.py
$ python3 matplotlib.py
importing myself
importing myself
$
Смотрите - importing myself
печатается дважды ! Когда import matplotlib
выполняется, Python пытается загрузить matplotlib.py
сам, не matplotlib
модуль!
Благодаря кэшированию, import
ing matplotlib
изнутри файл с именем matplotlib.py
не вызывает ошибок рекурсии.