35 votes

python 2.7 functools_lru_cache n'est pas importé bien qu'installé

Lorsque j'essaie d'importer matplotlib, j'obtiens une erreur

 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
 

le backport lui-même importe correctement. Lorsque j'essaie d'installer functools manuellement via

 sudo pip install backports.functools_lru_cache
 

Je reçois des informations

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

Néanmoins, quand j'essaie de

 import backports.functools_lru_cache
 

Je reçois des informations

 ImportError: No module named functools_lru_cache
 

Informations système Ubuntu 16 Python 2.7.12 Pip 9.0.1

40voto

Kamil Smolak Points 484

Si quelqu'un a toujours ce problème et que la réinstallation de backports.functools_lru_cache ne fonctionne pas dans son cas, comme c'était le cas dans mon cas, l'installation d'une ancienne version de matplotlib fonctionnerait probablement. Par exemple:

 pip install matplotlib==2.0.2
 

Un problème est survenu pour la version 2.2.0, je suis passé à 2.0.2 et cela fonctionne maintenant. Je n'ai pas vérifié les autres versions.

30voto

Shree Ranga Raju Points 310

J'ai eu le même problème mais je l'ai résolu.

Désinstaller d'abord

 pip uninstall backports.functools_lru_cache
 

puis réinstallez-le.

 pip install backports.functools_lru_cache
 

Maintenant, je peux importer matplotlib. J'espère que cela t'aides.

20voto

Aditya Jain Points 121

Installer la flèche en utilisant:

 pip install arrow==0.12.0 
 

résolu ce problème pour moi

14voto

enobufs Points 100

La commande pip était en fait le pip3, et "ImportError" se produisait lorsque j'utilisais python (2.7).

 pip2 uninstall backports.functools_lru_cache
 

ensuite,

 pip2 install backports.functools_lru_cache
 

résolu mon problème.

9voto

Harris Points 31

Vous devez vérifier quel est le chemin d'importation de backports paquet:

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

1. Le chemin d'importation est le principal python path ( le cas de Matimath la question)

pip désinstaller les backports.functools_lru_cache (ce sera le désinstaller à partir de /usr/local/)
pip install backports.functools_lru_cache

2. Le chemin d'importation, c'est le local usr dir (~/.locaux/ ou %APPDATA%\Python pour windows)

pip désinstaller les backports.functools_lru_cache 
pip install --user backports.functools_lru_cache

Utilisation pip2 de commande pour python2.

La raison de cette incohérence est que le chemin d'importation de backports paquet peut avoir été modifié au cours d'un autre module/package d'installation (par exemple. depuis les backports.configparser module) - voir ici pour plus de détails: https://bugs.python.org/issue31741

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X