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モジュールの実体を無事みつけました。