When I try to import matplotlib I get an error
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
backports itself imports properly. When I try to install functools manually via
sudo pip install backports.functools_lru_cache
I get info that
Requirement already satisfied: backports.functools_lru_cache in /usr/local/lib/python2.7/dist-packages
Nevertheless when i try to
import backports.functools_lru_cache
I get info that
ImportError: No module named functools_lru_cache
System info Ubuntu 16 Python 2.7.12 Pip 9.0.1
If someone is still having that problem and reinstalling backports.functools_lru_cache do not work in his case, as it was in my case, then probably installing older version of matplotlib would work. For example:
pip install matplotlib==2.0.2
Problem occurred for version 2.2.0, I switched to 2.0.2 and it is working now. I did not check other versions.
I had the same problem but I fixed it.
Uninstall first
pip uninstall backports.functools_lru_cache
and then re-install it.
pip install backports.functools_lru_cache
Now I'm able to import matplotlib. Hope this helps.
Install arrow using:
pip install arrow==0.12.0
fixed this issue for me
The pip command was actually the pip3, and the "ImportError" was happening when I used python (2.7).
pip2 uninstall backports.functools_lru_cache
then,
pip2 install backports.functools_lru_cache
fixed my problem.
You have to check what is the import path of backports package:
import backports
print('Backports Path: {0}'.format(backports.__path__))
1. The import path is the main python path ( the case of Matimath's question)
pip uninstall backports.functools_lru_cache (this will uninstall it from /usr/local/) pip install backports.functools_lru_cache
2. The import path is the local usr dir (~/.local/, or %APPDATA%\Python for windows)
pip uninstall backports.functools_lru_cache pip install --user backports.functools_lru_cache
Use pip2 command for python2.
The reason for this inconsistency is that the import path of backports package might have been changed during another module/package installation (eg. from backports.configparser module) - see here for more details: https://bugs.python.org/issue31741
I had the same problem and my solution was;
Download whl file from https://pypi.python.org/pypi/backports.functools_lru_cache/1.3
pip install
I solved my problem by removing the excessive matplotlib packages. I found out that when importing matplotlib it was attempting to import backports.functools_lru_cache
and there it was throwing the Importerror
.
I realized that I had different matplotlib packages in many locations:
/usr/lib/python2.7/dist-packages/matplotlib/
/usr/lib/python2.7/site-packages/matplotlib/
I removed the site-packages one. I left the dist-packages one intact.
Then I ran the following commands in python:
matplotlib.get_configdir()
matplotlib.get_cachedir()
and I removed the matplotlib packages in the output paths of these commands.
Then I removed the matplotlib in my virtualenvironment:
mv /home/username/virtualenvironment/lib/python2.7/matplotlib* /tmp
Finally I removed the one in the .local folder:
mv /home/username/.local/lib/python2.7/matplotlib* /tmp
Now importing matplotlib works fine. So when I run in python:
matplotlib.__file__
it returns
'/usr/lib/python2.7/dist-packages/matplotlib/__init__.pyc'
Now it does not throw error anymore when import backports.functools_lru_cache
You are using pyhton 2. try to use pip2 instead:
- pip2 uninstall matplotlib
- sudo apt-get autoremove python-matplotlib
- sudo apt-get install python-matplotlib
I had same issue, re-installation of backports.functools_lru_cache resolved the issue
this worked for me
from backports.functools_lru_cache import lru_cache
Also meet this issue on Ubuntu 16. Uninstall & reinstall not work for me.
My solution is reinstall from apt.
pip uninstall matplotlib
sudo apt-get autoremove python-matplotlib
sudo apt-get install python-matplotlib
来源:https://stackoverflow.com/questions/47179433/python-2-7-functools-lru-cache-does-not-import-although-installed