LoginSignup
10
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-12-17

はじめに

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

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6