2015-12-11 17 views
1

я приложение структурирована следующим образом:PyCharm автоматического импорта не удается импортировать Правильно

api/ 
|_app/ 
    |_ __init__.py 
    |_conf/ 
    |_resources/ 
     |_ __init__.py 
     |_controller.py 
    |_dao/ 
     |_ __init__.py 
     |_thing_dao.py 
    |_etc... 

Я хочу использовать функцию get_thing_by_id в thing_dao.py внутри controller.py. В PyCharm я начинаю вводить get_thing_by_id, и мне предлагается автоматически импортировать функцию. Проблема в том, что это просто from thing_dao import get_thing_by_id, но когда я пытаюсь запустить приложение (Flask), я получаю ImportError: No module named 'thing_dao'. То, что мне нужно сделать, это относительный импорт или запуск на уровне модуля from app.dao.thing_dao import get_thing_by_id.

Я подозреваю, что эта проблема связана с моей структурой проекта и меньшей ошибкой PyCharm. Есть ли способ структурировать мой проект, чтобы лучше намекнуть PyCharm, как делать импорт? Я просмотрел опцию конфигурации для автоматического импорта и PyCharm, и они довольно тонкие, поэтому я подозреваю, что я делаю что-то неправильно.

ответ

1

Я обнаружил, что мои каталоги отмечены как «Корень источника». Устранение маркировки заставило импорт работать правильно.

Смежные вопросы