pythonのパッケージとimport

パッケージの構成

  • リポジトリ名とパッケージ名は同じになる(ことが多い)。パッケージは小文字で、アンダースコアも(なるべく)使わず。モジュールは小文字でスネーク。(クラスはキャメルケース)
  • 基本的にはtestはpackageの各ディレクトリ、ファイルと対応する。よって、1モジュールに1テストファイル。
 package(repo)
    - README.md
    - LICENSE
    - setup.py
    - docs
    - examples
    - test
    - package
        - __init__.py
        - subpakcage
            - __init__.py
            - hoge.py
            - foo.py
        - hoge.py
        - foo.py

importの書き方

  • 相対importは基本的に使わずに絶対importを使い、トップパッケージから書く。
  • 例えば、pakcage/subpackage/init.pyの書き方は下記。
from pakcage.subpackage.hoge import xxx # xxxはimport対象
from package.subpackage.foo import yyy
  • package/hoge.pyは例えば下記。
from pakcage.foo import xxx
from package.subpackage.foo yyy

注意事項

  • この絶対importの書き方だと各モジュールを開発している時にそのモジュールのディレクトリで実行しても実行はできない。