Pythonノートのimport

889 ワード

https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html#example-directory-structure
pythonがimportを処理する行為が奇妙な場合があります.たとえば、次のディレクトリ構造です.testディレクトリの下にはcommonというディレクトリがあり、testのサブディレクトリpackAの下にも同名ディレクトリがあります.subAディレクトリのsa 1.pyでfrom commonを試します.logger importの時importを発見したのはtestディレクトリの下のcommonで、packAディレクトリの下のcommonではありません.印刷sys.pathはtest/commonパスが中には入っていないことを発見し,逆にpackA/commonが存在することを発見した.付きまとうのを避けるためにpackA.common下のlogger.pyはsubloggerと名前を変えた.ああ、また.sublogger importは期待と一致した.
この問題は深く究明するのに苦労しますが、保険のやり方は同じ項目の下でできるだけ同名のファイルを使わないで、自分でもはっきり見えます.
test/                      # root folder
    common/
        __init__.py
        logger.py
    packA/                 # package packA
        __init__.py
        common/
            logger.py
        subA/              # subpackage subA
            __init__.py
            sa1.py
            sa2.py