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

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

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

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

Linux

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

Q&A

解決済

1回答

883閲覧

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

Deep_Blues

総合スコア11

Python 3.x

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

Linux

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

0グッド

0クリップ

投稿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

1import os 2import numpy as np 3from moleculekit.molecule import Molecule 4from moleculekit.projections.metricfluctuation import MetricFluctuation 5from moleculekit.projections.metricrmsd import MetricRmsd 6import 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

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

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

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

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

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

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

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でインストールしていたため、 トラブルが生じた可能性が一番高いと考えています。色々勉強になりました。 解決済みにさせて頂き、具体的に行った流れを記載させて頂きます。
guest

回答1

0

自己解決

おそらく、condaでhtmdを入れた後に、後からjypyterの機能をpipでインストールしていたため、 トラブルが生じた可能性が高かった。
pipとcondaでのインストールを混ぜると良くない場合があることは様々なサイトで指摘されていました。

今回は、
pyenv install miniconda3-4.2.12
で新しく仮想環境を作り直し、
conda install jupyterlab
でjupyterの機能を追加し、さらに
conda install -c acellera -c conda-forge htmd
で、目的とした環境を構築でき、解決することができました。

投稿2022/08/09 00:02

Deep_Blues

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問