Python 2.7 functools_lru_cache не импортирует, хотя установлен

Когда я пытаюсь импортировать matplotlib, я получаю сообщение об ошибке

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 128, in <module>
  from matplotlib.rcsetup import defaultParams, validate_backend, cycler
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/rcsetup.py", line 29, in <module>
    from matplotlib.fontconfig_pattern import parse_fontconfig_pattern
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/fontconfig_pattern.py", line 32, in <module>
    from backports.functools_lru_cache import lru_cache
ImportError: No module named functools_lru_cache

он сам импортирует импорт. Когда я пытаюсь установить functools вручную через

sudo pip install backports.functools_lru_cache

Я получаю информацию о том, что

Requirement already satisfied: backports.functools_lru_cache in /usr/local/lib/python2.7/dist-packages

Тем не менее, когда я пытаюсь

import backports.functools_lru_cache

Я получаю информацию о том, что

ImportError: No module named functools_lru_cache

Информация о системе Ubuntu 16 Python 2.7.12 Pip 9.0.1

Ответ 1

Если у кого-то все еще есть эта проблема и переустановка backports.functools_lru_cache не работает в его случае, как это было в моем случае, возможно, установка старой версии matplotlib будет работать. Например:

pip install matplotlib==2.0.2

Проблема возникла для версии 2.2.0, я переключился на 2.0.2 и теперь работает. Я не проверял другие версии.

Ответ 2

У меня была такая же проблема, но я ее исправил.

Удалить сначала

pip uninstall backports.functools_lru_cache

а затем снова установите его.

pip install backports.functools_lru_cache

Теперь я могу импортировать matplotlib. Надеюсь, это поможет.

Ответ 3

Команда pip была фактически pip3, и "ImportError" происходило, когда я использовал python (2.7).

pip2 uninstall backports.functools_lru_cache

то

pip2 install backports.functools_lru_cache

исправлена ​​моя проблема.

Ответ 4

Установите стрелку, используя:

pip install arrow==0.12.0 

исправил эту проблему для меня

Ответ 5

Вы должны проверить, каков путь импорта пакета backports:

import backports
print('Backports Path: {0}'.format(backports.__path__))

1. Путь импорта - это основной путь к питону (случай вопроса Матимата)

pip uninstall backports.functools_lru_cache   (this will uninstall it from /usr/local/)
pip install backports.functools_lru_cache

2. Путь импорта - это локальный каталог usr (~/.local/или% APPDATA%\Python для Windows)

pip uninstall backports.functools_lru_cache 
pip install --user backports.functools_lru_cache

Используйте команду PiP2 для python2.

Причина этого несоответствия заключается в том, что путь импорта пакета backports мог быть изменен во время установки другого модуля/пакета (например, из модуля backports.configparser) - подробности см. Здесь: https://bugs.python.org/issue31741

Ответ 7

Я решил проблему, удалив избыточные пакеты matplotlib. Я узнал, что при импорте matplotlib он пытался import backports.functools_lru_cache и там он выбрасывал Importerror.

Я понял, что во многих местах у меня разные пакеты matplotlib:

/usr/lib/python2.7/dist-packages/matplotlib/
/usr/lib/python2.7/site-packages/matplotlib/

Я удалил сайт-пакеты один. Я оставил пакеты dist-int неповрежденными.

Затем я выполнил следующие команды в python:

matplotlib.get_configdir()
matplotlib.get_cachedir()

и я удалил пакеты matplotlib в выходных путях этих команд.

Затем я удалил matplotlib в моей виртуальной среде:

mv /home/username/virtualenvironment/lib/python2.7/matplotlib* /tmp

Наконец, я удалил папку .local:

mv /home/username/.local/lib/python2.7/matplotlib* /tmp

Теперь импорт matplotlib работает нормально. Поэтому, когда я запускаю python:

matplotlib.__file__

он возвращает

'/usr/lib/python2.7/dist-packages/matplotlib/__init__.pyc'

Теперь он больше не выдает ошибку, когда import backports.functools_lru_cache

Ответ 8

У меня была та же проблема, переустановка backports.functools_lru_cache решила проблему

Ответ 9

это сработало для меня

from backports.functools_lru_cache import lru_cache

Ответ 10

Также встречайте эту проблему на Ubuntu 16. Удаление и переустановка не работают для меня.

Мое решение переустановить из apt.

pip uninstall matplotlib
sudo apt-get autoremove python-matplotlib
sudo apt-get install python-matplotlib

Ответ 11

Вы используете pyhton 2. попробуйте вместо этого использовать pip2:

  • pip2 удалить matplotlib
  • sudo apt-get автоудаление python-matplotlib
  • sudo apt-get установить python-matplotlib