应该如何构建 Python 包以使其内部的任何模块都成为可能?
我的文件结构如下:
Project/
|---log/
| |---some logs
|
|---src/
|---foo/
| |---__init__.py
| |---analyse.py
| |---export.py
|
|---bar/
| |---__init__.py
| |---log.py
| |---dbhandler.py
|
|---__init__.py
|---main.py
main.py
初始化一切。我想导入foo/analyse.py
到bar/dbhandler.py
,但我只收到一个错误:
AttributeError: 'module' object has no attribute 'analyse'
我尝试了几种说法:
import Project.src.foo.analyse
import src.foo.analyse
import foo.analyse
import analyse
他们都给出了相同的错误。我也试过:
from .. import foo.analyse
from .. import analyse
但我收到:
ValueError: Attempted relative import beyond toplevel package
我已经浏览了 StackOverflow 上的大约 50 个线程和互联网上的无数文章。从我发现的所有内容来看import src.foo.*
,如果只有__init__.py
文件位于每个文件夹中,该语句应该可以在包内的任何地方工作。
有没有人有同样的问题?