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
Ответ 6
У меня была та же проблема, и мое решение было:
Ответ 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