LoginSignup
52
63

More than 3 years have passed since last update.

pythonのパッケージの保存場所

Last updated at Posted at 2019-05-30

pythonのモジュールの依存関係

今日、tensorflowをJupiter notebookで使ってみようとしたところ、つまってしまった。

pip installしたはずだが、importしようとすると、

ModuleNotFoundError: No module named 'tensorflow'

と出てしまう。

調べてみたところ、他のパッケージと保存先のディレクトリが違うことが原因でこういったことが起こっているようだ。

sys.pathで、importの際にパッケージを探しにいくディレクトリを調べることができる。
私の場合は、以下のようになった。

['/Users/hoge',
 '/anaconda3/lib/python37.zip',
 '/anaconda3/lib/python3.7',
 '/anaconda3/lib/python3.7/lib-dynload',
 '',
 '/anaconda3/lib/python3.7/site-packages',
 '/anaconda3/lib/python3.7/site-packages/aeosa',
 '/anaconda3/lib/python3.7/site-packages/IPython/extensions',
 '/Users/hoge/.ipython']

インストールしたパッケージの場所がこれらのいずれかであったら、importできるわけだ。

例えば、インストールしたパッケージの一つである、cv2の場所が知りたいと思って、

import cv2
cv2.__file__

と打つと、

/anaconda3/lib/python3.7/site-packages/cv2/cv2.cpython-37m-darwin.so

となり、cv2の場所が上のpathのリストに含まれていることが確認できる。

では、tensorflowはどこにあるのだろうか。

pip installしたパッケージの保存場所は、pip showで確認できるらしい。

やってみたところ、

Name: tensorflow
Version: 1.13.1
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: opensource@google.com
License: Apache 2.0
Location: /usr/local/lib/python2.7/site-packages
Requires: enum34, keras-preprocessing, wheel, astor, backports.weakref, tensorflow-estimator, mock, termcolor, protobuf, gast, tensorboard, absl-py, grpcio, six, keras-applications, numpy
Required-by:

Location: /usr/local/lib/python2.7/site-packagesとあり、確かに上のパスのリストの中にはない。

Location: /usr/local/lib/python2.7/site-packagesにpathを通すか、ディレクトリを移動するかのどちらかで、tensorflowを使えるようにできるだろう。

しかし、なぜ、同じようにpip install しているのに保存先が違うのか。。

52
63
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
52
63