読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Pythonの"-m"オプションが探しに行っている場所

python

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