我有一个具有以下结构的Django项目
project/
package1/
__init__.py
api.py
views.py
package2/
__init__.py
api.py
views.py
__init__.py
urls.py
wsgi.py
在package1/api.py
中,我执行以下导入:
from .views import my_func
当我执行此操作时,__name__
模块中的package1/views.py
值为project.package1.views
,这正是我想要的。
然而,当我在package2/api.py
中做同样的事情时:
from .views import my_func2
我package2.views
获得了__name__
,它错过了project
前缀。
我可以通过使用完整的from project.package2.views
路径解决此问题,但我不明白为什么它适用于一个包而不是另一个包。
我的__init__
文件中根本没有任何内容可以改变imports
的工作方式。