web-dev-qa-db-ja.com

Anaconda環境でPyCharmにmatplotlibをロードしようとするとエラーのリストが表示されるのはなぜですか?

PyCharmをAnacondaとともにインストールしました。 PyCharm設定を使用して、プロジェクトインタープリタータブからパッケージを追加することで、numpyをインストールしました。しかし、私は今matplotlibをインストールしようとしていて、エラーのリストが表示されます。

行を含めるだけで

import matplotlib.pyplot as plt

エラーが出ます:

AttributeError: module 'matplotlib.pyplot' has no attribute 'switch_backend'
Matplotlib support failed
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm 2018.2.4\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 23, in do_import
    succeeded = activate_func()
  File "C:\Program Files\JetBrains\PyCharm 2018.2.4\helpers\pydev\_pydev_bundle\pydev_console_utils.py", line 199, in <lambda>
    "matplotlib": lambda: activate_matplotlib(self.enableGui),
  File "C:\Program Files\JetBrains\PyCharm 2018.2.4\helpers\pydev\pydev_ipython\matplotlibtools.py", line 96, in activate_matplotlib
    gui, backend = find_gui_and_backend()
  File "C:\Program Files\JetBrains\PyCharm 2018.2.4\helpers\pydev\pydev_ipython\matplotlibtools.py", line 47, in find_gui_and_backend
    backend = matplotlib.rcParams['backend']
  File "C:\Users\calcl\Anaconda3\envs\PXP\lib\site-packages\matplotlib\__init__.py", line 892, in __getitem__
    plt.switch_backend(rcsetup._auto_backend_sentinel)

この問題の原因は何ですか?どのように解決しますか?

私はPython 3.6 with 3.0.0 MatplotlibおよびPyCharm 2018.2.4を使用しています

8
James

Python 3.6 with 3.0.0 MatplotlibとPyCharm 2018.2.4を使用して同じエラーが発生しました。トレースバックで示されるように、また、 anacondaプロンプトまたはスパイダーIDEは、このエラーを生成しません。

Matplotlib https://github.com/matplotlib/matplotlib/releases のリリースノートによると、「スイッチバックエンド」ユーティリティは新機能のようです。 @Psychotechnopathの回答で指摘されているように、パスに問題がある可能性があるため、PycharmはトレースバックのPycharmスクリプトによって呼び出されたときにスイッチバックエンドモジュールを見つけることができません。

ただし、手動でパスに何かを追加することは望ましい堅牢なソリューションではないと思います。代わりに、Anacondaプロンプトでcondaインストーラーを使用してmatplotlibをバージョン2.2.3にダウングレードしました。

conda install matplotlib=2.2.3

このダウングレードの後、Pycharmにmatplotlibを問題なくインポートすることができました。

9
BigFish

@BigFishが書いたように、これはPyCharm側のバグであり、バグレポート here を見ることができます。

PyCharm 2018.3で修正されているため、最も簡単な解決策はPyCharmをアップグレードすることです。代替の回避策は、matplotlibをダウングレードするか、実行構成で「pythonコンソールで実行)」のチェックを外します。

run with console

これにより、実行/デバッグが可能になりますが、インタラクティブコンソールを使用すると、これらのエラーが発生します。

ちなみに、PyCharmは history がmatplotlib APIの変更に遅れているため、次回はこれが最初の推測になるはずです...

8
OmerB

おそらく、Anacondaのインストール時に「パスに追加」しなかったか、アクティブ化されたconda環境からPyCharmを実行していません。アクティブ化された環境なしでPycharmを実行することはサポートされておらず、パッケージをインストールしようとすると問題が発生します。あなたが試すことができる2つの解決策:

  • Anacondaを再インストールし、[パスに追加]オプションを選択します。たとえば、この投稿を見て、これが何を意味するのかを確認してください: なぜ(またはなぜ)パスにAnacondaを追加しますか? 複数のpythonインストールがある場合パス上でこれが問題を引き起こす可能性があります(そのため、Anacondaがインストール時にこれを行うように警告します)。要約すると、Anacondaをパスに追加すると、PyCharmなどのプログラムがすべてがインストールされている場所を見つけやすくなり、インポートエラーの可能性が減少します。

  • アナコンダプロンプトを起動し、使用する環境をactivate Environmentnameでアクティブ化します。 Anacondaプロンプトを起動すると、ベース/ルート環境が自動的にアクティブになるため、別の環境を使用せず、ベース/ルート環境のみを使用する場合は、何もアクティブにする必要はありません。選択した環境がアクティブ化されたら、このプロンプトからPyCharmを起動します。

それで問題が解決したかどうかをお知らせください=)

1