首页 > 解决方案 > 从祖父母的兄弟目录导入类

问题描述

我知道有很多关于 Python 相对导入的问题,但我找不到任何有用的答案。所以,我希望 Stack Overflow Python 社区可以帮助我找出解决问题的方法。

我有以下目录结构:

project
    | - src
        | - module_1
            | - module_1
                | - interesting.py
            | - __init__.py
        | - module_2
            | - module_2
                | - importhere.py

模块中有interesting.py我想导入importhere.py模块的类。但是,不知何故 Pycharm 不允许我这样做!

什么是最 Pythonic 的解决方案?!

标签: python

解决方案


如果您使用的是 python3,您可以将空文件添加__init__.py到每个包含文件的目录,这应该可以工作:

# Scary mess though, counting "." is not funny. 
from ....module_1.module_1 import interesting

但我不会称它为pythonic。而且很丑。pythonic的方式是创建一个包。

即这样的文件夹结构:

project
    | - src
        | - module_1
                | - module_1
                        | - __init__.py
                        | - interesting.py
                | - __init__.py <-- why do you have this one?
        | - module_2
                | - module_2
                        | - __init__.py
                        | - importhere.py

推荐阅读