LoginSignup
20
23

More than 5 years have passed since last update.

Pythonモジュールの実ファイルの場所を確認する

Last updated at Posted at 2018-01-11

2018/7/11 追記

やっと理解できました。

>>> import slackbot.bot
>>> slackbot.bot.__file__
'/usr/local/lib/python3.6/dist-packages/slackbot/bot.py'
>>>
>>> import slacker
>>> slacker.__file__
'/usr/local/lib/python3.6/dist-packages/slacker/__init__.py'
>>>
>>> import slackclient
>>> slackclient.__file__
'/usr/local/lib/python3.6/dist-packages/slackclient/__init__.py'
>>>

from XXXXX import yyyy

ってやってたら見つからないってことでした。
そのまんまかもしれませんが、『XXXXからyyyyって部分だけ内部で展開するぞ』ってことなんすね。
そんな事もわからなかった
自分は愚か者です。

>>> import sys
>>> sys.__file__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'sys' has no attribute '__file__'
>>>

__file__って属性部分がないと見えないよって怒られました。
標準モジュールだと持ってないものもあるってことでしょうか。


以下は見なくていいです。(自分の愚かさのために残します。)

Slack用Botを作ってて疑問に思ったのが、

from slackbot.bot import Bot
このモジュールって実体はどこなんだろう。と。
pip install slackbotでインストールしたけどよくわからん…。
pyenvとか使ってしまい、初心者の自分には大変苦労しました。
ということでPythonが使うパスを確認。

>>> import sys
>>> sys.path

['', '/home/ajitama/.pyenv/versions/3.6.3/lib/python36.zip', '/home/ajitama/.pyenv/versions/3.6.3/lib/python3.6', '/home/ajitama/.pyenv/versions/3.6.3/lib/python3.6/lib-dynload', '/home/ajitama/.pyenv/versions/3.6.3/lib/python3.6/site-packages']
>>>

どうやら、Pythonのモジュール検索場所は下記に通ってるらしい。

'/home/ajitama/.pyenv/versions/3.6.3/lib/python36.zip',
'/home/ajitama/.pyenv/versions/3.6.3/lib/python3.6',
'/home/ajitama/.pyenv/versions/3.6.3/lib/python3.6/lib-dynload',
'/home/ajitama/.pyenv/versions/3.6.3/lib/python3.6/site-packages'

ということで、ここから根性で探す。

~/.pyenv/versions/3.6.3/lib/python3.6/site-packages$ ls -ld slack*
drwxr-xr-x 4 ajitama kuntama 4096 Dec 13 13:16 slackbot
drwxr-xr-x 2 ajitama kuntama 4096 Dec  8 15:25 slackbot-0.5.1.dist-info
drwxr-xr-x 3 ajitama kuntama 4096 Dec  8 16:30 slackclient
drwxr-xr-x 2 ajitama kuntama 4096 Dec  8 16:30 slackclient-1.1.0-py3.6.egg-info
drwxr-xr-x 3 ajitama kuntama 4096 Dec  8 15:25 slacker
drwxr-xr-x 2 ajitama kuntama 4096 Dec  8 15:25 slacker-0.9.60-py3.6.egg-info

slackbotモジュールの実体を無事みつけました。

20
23
4

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
20
23