Help us understand the problem. What is going on with this article?

2系3系共存している場合のライブラリインストールの罠[Python]

More than 1 year has passed since last update.

はじめに

pymatgenモジュールをインポートしようとした時に、ModuleNotFoundErrorに遭遇しました。
過去にインストールした記憶があるだけに一瞬?になりましたが、解決は難しくなかったです。
解決策をここで共有します。

material-scientist-tutorial.png

解決までの流れ

ライブラリがインストール済みか確認

pythonコマンドmオプションをつけて実行することで、Pythonモジュールパスにあるモジュールをスクリプトとして実行します。

また、pip freezeコマンドによって、現在インストールされているパッケージを表示し、この結果をパイプ|grep pymatgenに入力として渡しました。
そして、grep pymatgenによって、pymatgenがインストールされているかを確認します。

$ python -m pip freeze | grep pymatgen
pymatgen==2018.11.6

ここで、僕は、「あれ、インストールされてるじゃん。。」と思いましたが、python3コマンドもインストールしていたので、こちらにインストールされていないのが原因なのではと考え下記のコマンドを実行しました。

$ python3 -m pip freeze | grep pymatgen

結果は何も表示されず、python3の方では、pymatgenがインストールされていないことがわかりました。

ですので、pip3でインストールすることにしました。

ライブラリのインストール

$ pip3 install pymatgen

そして、次のコマンドを実行し、無事インストールされたかを確認しました。

$ python3 -m pip freeze | grep pymatgen
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
pymatgen==2018.12.12

今回は結果が表示されました。完了ですね。

モジュールのアップグレード

ここからは補足ですが、
先ほどのコマンド実行結果にpipコマンドのバージョンをあげるようにと警告が出ていますね。
素直に従って、実行。

$ pip install --upgrade pip
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages (18.1)

ですがpyhoon2系に紐づいたpipは最新版だと言われました。。

そうでしたね、3系に紐づいているpIpのバージョンをあげることが目的でしたので、pip3コマンドで実行しました。

$ pip3 install --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 10.0.1
    Uninstalling pip-10.0.1:
      Successfully uninstalled pip-10.0.1
Successfully installed pip-18.1

無事、最新バージョンがインストールされましたね。
先ほどと同じコマンドを再度実行します。

$ python3 -m pip freeze | grep pymatgen
pymatgen==2018.12.12

先ほどと違い、警告は出なくなりましたね。

そして、最後にpython3で対話モードを起動し、import pymatgenを実行すると、エラーは表示されなくなりました。

対話モードでライブラリがインストールされたか確認

$ python3
Python 3.6.5 (default, Apr 25 2018, 14:23:58)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymatgen
>>>

成功ですね。
Python3系にpymatgenライブラリがインストールされました。

おわりに

今回は、pymatgenライブラリをインストール済みかの確認を含めて、流れを追って記述しましたが、pymatgenライブラリに限った話ではないので、
その他ライブラリのインストールの際にも、必要に応じてご参考ください。

この記事が役に立ったという方は、いいね、お願いします(^^)

Python関連記事

環境構築の真髄(PATHなどの概念)を理解しよう[Python編]
Jupyter Notebookの効果的な使い方を知ろう[Python/機械学習]

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした