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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

解決済

仮想環境で立ち上げたjupyter-notebookでmatplotlibがimportできない

Deep_Blues
Deep_Blues

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

1回答

0リアクション

0クリップ

212閲覧

投稿2022/08/05 00:05

編集2022/08/05 07:36

前提

リモートサーバーPC(Linux)で、conda createで仮想環境を作成し、
jupyter-notebookをローカルPCで操作するように設定しています。

実現したいこと

作業を始めたところ、matplotlibが入っているはずなのに、
import matplotlib.pyplot as pltでNo module named 'matplotlib'のエラーが出てしまいます。試行錯誤していますが、うまく行かず絶望しています。
これまでの類似の質問が多くあるようですが、それを参照しても解決できず、
どうか宜しくお願い致します。

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

--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-3-bf6b675b3eeb> in <module> 4 from moleculekit.projections.metricfluctuation import MetricFluctuation 5 from moleculekit.projections.metricrmsd import MetricRmsd ----> 6 import matplotlib.pyplot as plt ModuleNotFoundError: No module named 'matplotlib'

該当のソースコード

Python3

import os import numpy as np from moleculekit.molecule import Molecule from moleculekit.projections.metricfluctuation import MetricFluctuation from moleculekit.projections.metricrmsd import MetricRmsd import matplotlib.pyplot as plt

試したこと

import sys print(sys.path)

を行ったところ、

['/home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python36.zip', '/home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python3.6', '/home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python3.6/lib-dynload', '', '/home/XXX/.local/lib/python3.6/site-packages', '/home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python3.6/site-packages', '/home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python3.6/site-packages/IPython/extensions', '/home/XXX/.ipython']
と表示され、現在の仮想環境が表示されているようでした。

また、

conda list

を行ったところ、
matplotlib 3.3.4
matplotlib-base 3.3.4
が含まれております。

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

jbob様誠にありがとうございます。

/home/XXX/.local/lib/python3.6/site-packages か /home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python3.6/site-packages に、名前に「matplotlib」が付くファイルやディレクトリはありますでしょうか?

仰ったディレクトリ内には「matplotlib」が付くファイルやディレクトリはなさそうでした。

which pip を実行して表示されるpipの絶対パスは、下記の中でしょうか?

いえ、現在はこちらになっております。
~/.pyenv/shims/pip

環境構築初心者でわからない部分が多く恐縮ですが、どうぞ宜しくお願い致します。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

jbpb0

2022/08/05 05:17

/home/XXX/.local/lib/python3.6/site-packages か /home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc/lib/python3.6/site-packages に、名前に「matplotlib」が付くファイルやディレクトリはありますでしょうか? > conda list を行ったところ、 matplotlib 3.3.4 matplotlib-base 3.3.4 が含まれております。 を確認したのと同じ状態で which pip を実行して表示されるpipの絶対パスは、下記の中でしょうか? /home/XXX/.pyenv/versions/miniconda3-4.2.12/envs/calc もしそうなら、 pip show matplotlib の実行結果の「Location:」の行に表示されてるパスは、「sys.path」に含まれてますでしょうか?
jbpb0

2022/08/05 09:34

> 現在はこちらになっております。 ~/.pyenv/shims/pip conda list which pip は、仮想環境を有効にした状態で実行してますよね?
Deep_Blues

2022/08/05 09:38

はい、こちらは pyenv shell miniconda3-4.2.12/envs/calc を行って、 こちらの仮想環境下で、 conda list which pip などは行っております。勘違いがございましたら申し訳ございません。
Deep_Blues

2022/08/05 09:49

conda activate calcを行ったところ、 CommandNotFoundError: Command Error: error with command 'activate'. Command not found: 'activate'. 'activate' is not a conda command. Did you mean "source activate calc" ? と出てきまして、source activate calcを行ったところ、 pyenv-virtualenv: version `miniconda3-4.2.12/envs/calc' is already activated となるのですがこれで合っていますでしょうか?何度も申し訳ございません。
Deep_Blues

2022/08/05 09:53

この状況で、conda listとwhich pipを実行しましたが、上述と同じ結果でした。
jbpb0

2022/08/05 10:20 編集

> conda createで仮想環境を作成 > pyenv-virtualenv: version `miniconda3-4.2.12/envs/calc' is already activated 下記に書かれてるように、condaの仮想環境とpyenv+virtualenvの仮想環境は別のもので、両方で仮想環境を作るのは止めた方がいいですよ https://qiita.com/celerinoue/items/95d19be02ac6923ec1ee 現状、上記に書かれてるようなpyenv+virtualenvが邪魔してる状態になってて、 > conda createで仮想環境を作成 で作った仮想環境をconda activateで有効にできてない状態で、 conda list which pip とか実行してるのではないですかね
jbpb0

2022/08/05 10:16

確認ですが、 > リモートサーバーPC(Linux)で、conda createで仮想環境を作成し、 jupyter-notebookをローカルPCで操作するように設定しています。 は、linuxで > conda createで仮想環境を作成 で作った仮想環境をconda activateで有効にした状態でjupyterを起動してる、という意味ですよね? pyenv+virtualenvの仮想環境ではなく
Deep_Blues

2022/08/05 10:50 編集

確かに、両者を混ぜてやるのはまずいということが段々認識できてきました。 おそらく、pyenv install miniconda3-4.2.12を行なった後は、 conda create -n home python=3.6ではなく、 pyenv virtualenv miniconda3-4.2.12 homeのように仮想環境を作成して、 その後の作業を行えば良かったのですかね。 少しまだ難航していますが(python 3.6を入れてしまったせいで、Installing pip from https://bootstrap.pypa.io/pip/get-pip.py... ERROR: This script does not work on Python 3.6 The minimum supported Python version is 3.7. Please use https://bootstrap.pypa.io/pip/3.6/get-pip.py instead. のようなエラーも出てしまっています)、もう少し頑張ってみます。
jbpb0

2022/08/08 07:43 編集

> pyenv shell miniconda3-4.2.12/envs/calc を行って、 こちらの仮想環境下で、 conda list which pip などは行っております。 の状態で、 > conda list を行ったところ、 matplotlib 3.3.4 matplotlib-base 3.3.4 が含まれております。 ならば、その状態でjupyterを起動したら、jupyterでmatplotlibをインポートできるのではないですかね (condaの仮想環境のことは忘れる) それでもダメなら、ややこしくなってる現状をなんとか直そうとするよりも、全部消して一からインストールし直した方が早いかも (今後は違う手段で仮想環境を作ったりしない)
Deep_Blues

2022/08/08 23:54

jbpb0様 この度は、初学者の拙い質問にも丁寧なご回答を頂き、誠にありがとうございます。 jbpb0様の教えてくださったサイトの情報が非常に参考になり、仮想環境への理解をまだまだ不十分ながら進める事ができました。 おっしゃった通り、pyenvで一旦新たな仮想環境を作り直して行ったところ解決致しました。 具体的には、jupyterをconda installでインストールしjupyterの起動を確認した後に、 おなじくconda installで上記htmdを(matplotlibのインストールを含む)インストールしたところ、 正常に動きました。 以前は、condaでhtmdを入れた後に、後からjypyterの機能をpipでインストールしていたため、 トラブルが生じた可能性が一番高いと考えています。色々勉強になりました。 解決済みにさせて頂き、具体的に行った流れを記載させて頂きます。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。