我知道有很多关于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解决方案是什么?!
答案 0 :(得分:3)
如果您使用的是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
答案 1 :(得分:1)
project
| - src
| - __init__.py
| - module_1
| - module_1
| - interesting.py
| - __init__.py
| - __init__.py
| - module_2
| - __init__.py
| - module_2
| - importhere.py
| - __init__.py
但是,为src
目录设置 init .py真的是一个很好的方法吗?