我创建了一个包含子文件夹的包,我想包含一个子包模块中的父模块。
我尝试遵循此处建议的项目结构https://docs.python-guide.org/writing/structure/并尝试复制此处列出的分步过程http://zetcode.com/lang/ python/packages/但我似乎遗漏了一些关于 python 包系统的明显内容
这是我的项目结构
watches/
-- ...
-- watches/
---- __init__.py (empty)
---- Logger.py
---- main.py
---- db/
------ __init__.py (empty)
------ EntryPoint.py
Logger.py
包含一个类:
class Logger:
...
我尝试从db/EntryPoint.py
以下方式导入 Logger.py 的类和方法:
from watches.Logger import Logger
class EntryPoint:
...
然后,我想将所有内容总结main.py
如下:
from db.EntryPoint import EntryPoint
if __name__ == "__main__":
t = EntryPoint("local")
最后,当我尝试main.py
按如下方式执行时python3 main.py
(所以我位于watches/watches
您可以猜到的目录中),我得到以下错误堆栈跟踪:
Traceback (most recent call last):
File "main.py", line 1, in <module>
from db.EntryPoint import EntryPoint
File "some/absolute/path/watches/watches/db/EntryPoint.py", line 4, in <module>
from watches.Logger import Logger
ModuleNotFoundError: No module named 'watches'