在Python(Django)中导入包时不一致__name__

时间:2016-02-01 20:45:08

标签: python django import python-import

我有一个具有以下结构的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的工作方式。

0 个答案:

没有答案