Python笔记之import

https://chrisyeh96.github.io/2017/08/08/definitive-guide-python-imports.html#example-directory-structure

有时候,python 处理import 的行为有些诡异。
比如下面的目录结构。
test目录下有一个叫common的目录, test的子目录packA下也有一个同名目录。
当在subA目录下的sa1.py中试图from common.logger import 时发现import的是test目录下的common, 而不是packA目录下的common. 打印sys.path发现test/common路径并不在里面, 反而packA/common是存在的。
为避免纠缠,将packA.common下的logger.py改名为sublogger.py, 再from common.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

你可能感兴趣的:(Python笔记之import)