如何解决python3显式相对导入错误
我正盯着我的python代码打包。 我的包裹结构是:
mypackage/
__init__.py
/subpackage
__init__.py
module1.py
module2.py
在我的module2中,如果我使用绝对导入,例如:
from mypackage.subpackage import module1
这将起作用。
但是,如果我使用显式导入,如:
from . import module1
这给了我
ImportError:尝试了相对导入,但没有已知的父包
我对此进行了搜索,发现隐式相对导入效果不好。但是我的导入是显式的,它给了我这样的错误信息。 有人可以帮我理解为什么吗? 谢谢
解决方法
相对导入仅在包内部有效。如果您对实际的可执行代码(纯库)有mypackage
的要求,并且使用了显式的相对导入,那就可以了。但是,如果您尝试直接运行module2
,则代码会显示
找到
__main__
所在的程序包,找到其父级,并找到名为module1
的ITS子级
这显然是胡说八道,因为__main__
没有父(根据定义)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。