Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@takuyanin

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/機械学習]

6
Help us understand the problem. What is going on with this article?
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
takuyanin
Just keep going. My favorites: Programming/ English/ American TV series/ Travel/ Dance/ Music

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?