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上和互联网上无数的文章大约五十线程不见了。从我发现的所有内容中,只要__init__.py
文件位于每个文件夹中,import src.foo.*
语句就可以从包中的任何位置运行。
有没有人有同样的问题?
“我想将foo/analyse.py导入到bar/dbhandler.py”是什么意思?你想在'bar/dbhandler.py'中输入foo.analyse吗?或者你是否试图将它们都导入到'main.py'中? – jszakmeister