質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

10738閲覧

pythonでmatplotlibを使用時に指定されたモジュールが見つからないというエラーが出る

Keiichi623

総合スコア17

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/23 09:30

編集2021/05/26 09:44

前提・実現したいこと

Pythonで数式をグラフ表示し、画像ファイル(png)として保存しようと考えています。
そこで、matplotlibをインストールし、下記のコードを記述しましたが、指定されたモジュールが見つからないというメッセージが出ます。
GUIが必要なのかと思い、Jupyter-labで動作テストしたときには正常にグラフが表示されました。
現実にはコマンドプロンプトから実行したいプログラムなので、なんとか対応したいと考えています。

発生している問題・エラーメッセージ

仮想環境c:\py/math(Python38-32bit)で実行した結果

Traceback (most recent call last): File "C:\py\math\04graph.py", line 7, in <module> import matplotlib.pyplot as plt File "c:\py\math\lib\site-packages\matplotlib\__init__.py", line 107, in <module> from . import _api, cbook, docstring, rcsetup File "c:\py\math\lib\site-packages\matplotlib\rcsetup.py", line 26, in <module> from matplotlib.colors import Colormap, is_color_like File "c:\py\math\lib\site-packages\matplotlib\colors.py", line 82, in <module> from matplotlib import _api, cbook, scale File "c:\py\math\lib\site-packages\matplotlib\scale.py", line 18, in <module> from matplotlib.ticker import ( File "c:\py\math\lib\site-packages\matplotlib\ticker.py", line 179, in <module> from matplotlib import transforms as mtransforms File "c:\py\math\lib\site-packages\matplotlib\transforms.py", line 46, in <module> from matplotlib._path import ( ImportError: DLL load failed while importing _path: 指定されたモジュールが見つかりません。

仮想環境c:\py/formula/(Python39-64bit)で実行した結果

Traceback (most recent call last): File "C:\py\formula\04graph.py", line 7, in <module> import matplotlib.pyplot as plt File "C:\py\formula\lib\site-packages\matplotlib\__init__.py", line 107, in <module> from . import _api, cbook, docstring, rcsetup File "C:\py\formula\lib\site-packages\matplotlib\rcsetup.py", line 26, in <module> from matplotlib.colors import Colormap, is_color_like File "C:\py\formula\lib\site-packages\matplotlib\colors.py", line 82, in <module> from matplotlib import _api, cbook, scale File "C:\py\formula\lib\site-packages\matplotlib\scale.py", line 18, in <module> from matplotlib.ticker import ( File "C:\py\formula\lib\site-packages\matplotlib\ticker.py", line 179, in <module> from matplotlib import transforms as mtransforms File "C:\py\formula\lib\site-packages\matplotlib\transforms.py", line 46, in <module> from matplotlib._path import ( ImportError: DLL load failed while importing _path: 指定されたモジュールが見つかりません。

なお、コマンドラインからimport matplotlibを実行した結果

(formula) C:\py\formula>python Python 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\py\formula\lib\site-packages\matplotlib\__init__.py", line 107, in <module> from . import _api, cbook, docstring, rcsetup File "C:\py\formula\lib\site-packages\matplotlib\rcsetup.py", line 26, in <module> from matplotlib.colors import Colormap, is_color_like File "C:\py\formula\lib\site-packages\matplotlib\colors.py", line 82, in <module> from matplotlib import _api, cbook, scale File "C:\py\formula\lib\site-packages\matplotlib\scale.py", line 18, in <module> from matplotlib.ticker import ( File "C:\py\formula\lib\site-packages\matplotlib\ticker.py", line 179, in <module> from matplotlib import transforms as mtransforms File "C:\py\formula\lib\site-packages\matplotlib\transforms.py", line 46, in <module> from matplotlib._path import ( ImportError: DLL load failed while importing _path: 指定されたモジュールが見つかりません。 >>> exit()

該当のソースコード

Python

1import matplotlib.pyplot as plt 2import numpy as np 3 4# データ生成 5x = np.linspace(0, 10, 100) 6y = x + np.random.randn(100) 7 8# プロット 9plt.plot(x, y, label="test") 10 11# 凡例の表示 12plt.legend() 13 14# プロット表示(設定の反映) 15plt.show() 16#plt.savefig("test.png")

試したこと

・モジュールの再インストール
・pipのアップデート
・matplotlibrcのbackend : macosx → backend : Tkagg
・Python 64bit版のインストール(td/tk and IDLEを含む)
・Anacondaのインストール

テスト環境1(32bit)
c:\py\math\lib\site-packages\matplotlib
こちらには_pathで始まるファイルはありませんでした。

テスト環境2(64bit)
c:\py\formula\lib\site-packages\matplotlib
_path.cp39-win_amd64.pyd というファイルが存在しました。
が、ImportError:が出ています。

テスト環境3
JupyterのNotebookでは正常に動作しました。
Jupyterにはmatplotlibが標準で入っているという情報によるものです。

補足情報(FW/ツールのバージョンなど)

Windows10 64bit
Python 3.8.2 32bit Python 3.9.4 64bit
matplotlib 3.4.2
matplotlib-inline 0.1.2
Git CMD

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Keiichi623

2021/05/23 13:12

情報提供ありがとうございます。 翻訳してみましたがちょっと何言ってるかわかんないですね。 でも、numpyについて調べてみようと思います。
ppaul

2021/05/24 15:43

私の使っているpython3.8では、 site-packages\\matplotlib\\_path.cp38-win_amd64.pyd というファイルがあります。 Keiichi623さんのc:\py\math\lib\site-packages\matplotlib\には _pathで始まる名前のファイルがあれば、そのファイル名を教えてください。
Keiichi623

2021/05/25 08:56

ppaulさん調査ご協力ありがとうございます。 隠しファイルも含めて探しましたが、 _path.cp38-win_amd64.pyd _path.* のファイルは見つかりませんでした。 類似したファイル名であれば、同じcp38を含むpydファイルで _cffi_backend.cp38-win32 というファイルはありました。 アンダーバーで始まるファイルはあと_pyrsistent_version.pyだけでした。
jbpb0

2021/05/25 09:22

> pip install matplotlib でインストールしたものになります。 を行った状態で、 pip show matplotlib を実行したら、いろいろ表示される中に「Location:」で始まる行がありますので、その行に何て書かれてるか教えてください
jbpb0

2021/05/25 09:35

こちらのWindows PCで pip show matplotlib を実行したら、「Location:」で始まる行には c:\users\XXX\anaconda3\lib\site-packages と表示されます (XXXは伏せ字) 上記ディレクトリパスに「matplotlib」というディレクトリがあり、その中にはファイル名が「*.pyd」のファイルが7個あります dir /b c:\users\XXX\anaconda3\lib\site-packages\matplotlib\*.pyd ft2font.cp37-win_amd64.pyd _contour.cp37-win_amd64.pyd _image.cp37-win_amd64.pyd _path.cp37-win_amd64.pyd _qhull.cp37-win_amd64.pyd _tri.cp37-win_amd64.pyd _ttconv.cp37-win_amd64.pyd ただし、Anacondaのmatplotlibなので、pipで入れたものとはファイル構成が多少違うかもしれません
jbpb0

2021/05/25 09:50 編集

https://pypi.org/project/matplotlib/#files から、pip installで使われる、Python 3.8用の matplotlib-3.4.2-cp38-cp38-win_amd64.whl を落として、展開して中を見たら、「matplotlib\*.pyd」は8個ありました ft2font.cp38-win_amd64.pyd _contour.cp38-win_amd64.pyd _c_internal_utils.cp38-win_amd64.pyd _image.cp38-win_amd64.pyd _path.cp38-win_amd64.pyd _qhull.cp38-win_amd64.pyd _tri.cp38-win_amd64.pyd _ttconv.cp38-win_amd64.pyd pip installが正常に行われたら、これらと同じ名前のファイルは、質問者さんのパソコンの中にもあるはずなのです 「_path.cp38-win_amd64.pyd」は、何で無いのだろう??
jbpb0

2021/05/25 09:59

> Jupyter-lobで動作テストしたときには正常にグラフが表示されました。 逆に、これも不思議です Jupyterで(import matplotlib...がうまくいく状態で)、下記を実行した結果を教えてください import sys import pprint pprint.pprint(sys.path) ユーザ名等の個人情報は伏せ字にしてかまいませんが、表示されたものはできるだけ省略せずに書いてください
Keiichi623

2021/05/25 11:07

jbp0様 情報ありがとうございます。 一つずつ精査していますが、以下の情報だけ先にお渡しします。 Jupyter-labはScrapingというmathとは別の仮想環境の下にあります(元々あったので比較検証のテストに使いました)。 ScrapingからJupyterを起動し、Notebookから実行した結果を記載します。 別の仮想環境というのが混乱を招く要因でしたらすみません。 ただし、Jupyter以外の導入しているライブラリの構成は同じです。 ['C:\\py\\math', 'C:\\Python\\Python38-32\\python38.zip', 'C:\\Python\\Python38-32\\DLLs', 'C:\\Python\\Python38-32\\lib', 'C:\\Python\\Python38-32', 'c:\\py\\scarping', '', 'c:\\py\\scarping\\lib\\site-packages', 'c:\\py\\scarping\\lib\\site-packages\\win32', 'c:\\py\\scarping\\lib\\site-packages\\win32\\lib', 'c:\\py\\scarping\\lib\\site-packages\\Pythonwin', 'c:\\py\\scarping\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\Admin\\.ipython']
jbpb0

2021/05/25 13:59

> _path.cp38-win_amd64.pyd _path.* のファイルは見つかりませんでした。 類似したファイル名であれば、同じcp38を含むpydファイルで _cffi_backend.cp38-win32 というファイルはありました。 アンダーバーで始まるファイルはあと_pyrsistent_version.pyだけでした。 のときですが、もしかしたら、 c:\py\math\lib\site-packages でファイルを探してませんでしょうか? もしそうなら、探すのはそこではなく、 c:\py\math\lib\site-packages\matplotlib です
Keiichi623

2021/05/25 22:13

64bit版のPythonを新たにインストールしてformulaという環境で確認したところ、 c:\py\formula\lib\site-packages\matplotlibの中に _path.cp39-win_amd64.pydがありました。 しかし、この環境で実行しても同じエラーが表示されてしまいました。 なんとかみなさんが求めているファイルがあるという状況にまで辿り着きました!
jbpb0

2021/05/26 00:21 編集

> _path.cp39-win_amd64.pydがありました。 しかし、この環境で実行しても同じエラーが表示されてしまいました。 「同じエラー」とは、 DLL load failed while importing _path: 指定されたモジュールが見つかりません。 ですか? (「_path」と書かれてますか?) もしそうなら、そのエラーが表示されてるところのちょっと上のあたりに表示されてるディレクトリパスは、 c:\py\formula\lib\site-packages\matplotlib... でしょうか? 【追記】 formula環境でのエラーメッセージを、質問を編集して、math環境のエラーメッセージと同様に記載してくださると、読みやすいので助かります
Keiichi623

2021/05/26 10:17

下記のリンクから Visual Studio 2015 の Visual C++ 再頒布可能パッケージ https://www.microsoft.com/en-in/download/details.aspx?id=48145 をインストールしたところ治りました。 原因がよくわかりませんが、VC++のランタイムDLLが必要な命令があったのですね。 無事解決できました。jbp0様をベストアンサーに選びたいので何かしら回答を頂けると助かります。
guest

回答2

0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

入れているのがWindows用のmatplotlibではないように見えますね。

Windowsであれば、_pathはDLLではなくくpydです。

pip install matplotlib

を使ってPyPIからmatplotlibをインストールしてください。

投稿2021/05/23 09:51

編集2021/05/23 10:25
ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Keiichi623

2021/05/23 21:43

回答ありがとうございます。 こちらですが、 pip install matplotlib でインストールしたものになります。 二度ほど再インストールもしたのですが、解決していません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問