web-dev-qa-db-ja.com

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

27
Matimath

誰かがまだその問題を抱えていて、私の場合のようにbackports.functools_lru_cacheの再インストールが彼のケースでは機能しない場合、おそらく古いバージョンのmatplotlibのインストールが機能するでしょう。例えば:

pip install matplotlib==2.0.2

バージョン2.2.0で問題が発生し、2.0.2に切り替えましたが、現在機能しています。他のバージョンはチェックしませんでした。

33
Kamil Smolak

私は同じ問題を抱えていましたが、それを修正しました。

最初にアンインストールする

pip uninstall backports.functools_lru_cache

その後、再インストールします。

pip install backports.functools_lru_cache

これで、matplotlibをインポートできるようになりました。お役に立てれば。

20

次を使用して矢印をインストールします。

pip install arrow==0.12.0 

私のためにこの問題を修正しました

12
Aditya Jain

Pipコマンドは実際にはpip3であり、python(2.7)を使用したときに「ImportError」が発生していました。

pip2 uninstall backports.functools_lru_cache

その後、

pip2 install backports.functools_lru_cache

私の問題を修正しました。

11
enobufs

バックポートパッケージのインポートパスを確認する必要があります。

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

1。インポートパスはメインのpython pathです(Matimathの質問の場合)

pip uninstall backports.functools_lru_cache(これにより/ usr/local /からアンインストールされます)
 pip install backports.functools_lru_cache

2。インポートパスはローカルusr dir(〜/ .local /、またはWindowsの場合は%APPDATA%\ Python)です。

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

Python2にはpip2コマンドを使用します。

この不整合の理由は、バックポートパッケージのインポートパスが別のモジュール/パッケージのインストール中に変更された可能性があるためです(たとえば、backports.configparserモジュールから)-詳細については、こちらを参照してください: https://bugs.python .org/issue31741

5
Charidimos

Python 2を使用しています。代わりにpip2を使用してください。

  • sudo apt-get autoremove python-matplotlib
  • Sudo apt-get install python-matplotlib
2
darrey

私は同じ問題を抱えていましたが、私の解決策は次のとおりでした。

2
HilmiK

過剰なmatplotlibパッケージを削除することで問題を解決しました。 matplotlibをインポートするときにimport backports.functools_lru_cacheを試行しており、Importerrorをスローしていることがわかりました。

多くの場所で異なるmatplotlibパッケージがあることに気付きました。

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

サイトパッケージを削除しました。 dist-packagesはそのまま残しました。

次に、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の場合、エラーは発生しなくなりました

2
redsphinx

同じ問題がありましたが、backports.functools_lru_cacheを再インストールすると問題が解決しました

1
Ragesh Moorkoth

Ubuntu 16でもこの問題に対処してください。アンインストールと再インストールは機能しません。

私の解決策は、aptから再インストールすることです。

pip uninstall matplotlib
Sudo apt-get autoremove python-matplotlib
Sudo apt-get install python-matplotlib
0
Javan

これは私のために働いた

from backports.functools_lru_cache import lru_cache
0
Aze