您正在从“ sub”包中导入。start.py
即使有__init__.py
礼物,它本身也不在包装中。
您需要从以下目录中的一个目录启动程序parent.py
:
./start.py
./pkg/__init__.py
./pkg/parent.py
./pkg/sub/__init__.py
./pkg/sub/relative.py
与start.py
:
import pkg.sub.relative
现在pkg是顶层软件包,您的相对导入应该可以了。
如果您想坚持使用当前的布局,则可以使用import parent
。因为您是start.py
用来启动解释器的,所以该目录start.py
位于python路径中。parent.py
作为一个单独的模块住在那儿。