Проблемы с импортом модулей Python - PullRequest
1 голос
/ 17 февраля 2010

Я создаю веб-приложение с такой структурой каталогов:

app/
    __init__.py
    config/
        __init__.py
        db_config.py
    models/
        __init__.py
        model.py
        datasources/
            __init__.py
            database.py
    ...
    ...

Каждый файл __init__.py имеет

__all__ = ['', '', ...]

в нем, перечисляя .py файлы, которые находятся в том же каталоге, что и он. Итак, app / __ init__.py пуст, app / config / __ init__.py имеет

__all__ = ['db_config']

и т. Д. В app / models / datasources / database.py, я не могу импортировать что-либо из app / config / db_config.py. Я пытался

import app.config.db_config
import config.db_config
from app.config.db_config import *

но ни один из них не сработал. Если у кого-то есть какие-либо идеи, я бы очень хотел их услышать.

Кроме того, я прошу прощения, если это дублирующий вопрос, но я не был уверен, что именно искать.

1 Ответ

2 голосов
/ 17 февраля 2010

import app.config.db_config - лучший способ (избегайте неабсолютного импорта и никогда не используйте импорт *), и для этой работы каталог app должен быть в sys.path. Если это не так, добавьте каталог к ​​вам PYTHONPATH или переместите проект куда-нибудь в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...