Django相对导入

时间:2016-03-10 20:39:29

标签: python django python-2.7

我正在使用Python 2.7和Django 1.8.11。

我的项目结构是这样的:

myapp/
    __init__.py
    settings/
        base.py
        settings.py
        __init__.py
    apps/
        __init__.py
        utils/
            __init__.py
            dynsettings.py

以下是我的settings.py文件的一部分:

import os
from ..apps.utils.dynsettings import import_settings
from .base import *

base.py

PROJECT_DIR = os.path.dirname(__file__)
BASE_DIR = os.path.dirname(PROJECT_DIR)

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

settings/__init__.py

from __future__ import absolute_import

from .settings import *

我收到错误:

from ..apps.utils.dynsettings import import_settings
ImportError: No module named apps.utils.dynsettings

为什么这适用于Python3,但不适用于Python2?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

settings.py更改为(交换字符串):

from .base import *
from utils.dynsettings import import_settings