Pythonの"-m"オプションが検索しているパスは sys.pathで確認できます。
実際のところ
ためしに、REPLでみてみましょう。
import sys sys.path #>> ['', '/Users/shuzo_kino/.anyenv/envs/pyenv/versions/3.4.3/lib/python34.zip', '/Users/shuzo_kino/.anyenv/envs/pyenv/versions/3.4.3/lib/python3.4', '/Users/shuzo_kino/.anyenv/envs/pyenv/versions/3.4.3/lib/python3.4/plat-darwin', '/Users/shuzo_kino/.anyenv/envs/pyenv/versions/3.4.3/lib/python3.4/lib-dynload', '/Users/shuzo_kino/.anyenv/envs/pyenv/versions/3.4.3/lib/python3.4/site-packages']
さて、ここで以前書いた記事(参考もと参照)をみてみます。
この記事では、ポートを発見するCLIツールを紹介しました。
そのときの実行内容は以下の通り。
$ python -m serial.tools.list_ports
何やらドット区切りになっているようですが、これは一体どこから読み込んでいるのでしょうか?
上記のパスを頼りに探すと、外部導入パッケージだからかsite-packages以下に入っていました。
あのドットはディレクトリを潜るといった意味合いだったのですね。
$ ls .anyenv/envs/pyenv/versions/3.4.3/lib/python3.4/site-packages/serial/tools/ __init__.py list_ports_common.py list_ports_posix.pyc __init__.pyc list_ports_common.pyc list_ports_windows.py __pycache__ list_ports_linux.py list_ports_windows.pyc hexlify_codec.py list_ports_linux.pyc miniterm.py hexlify_codec.pyc list_ports_osx.py miniterm.pyc list_ports.py list_ports_osx.pyc list_ports.pyc list_ports_posix.py