2016-04-28 4 views
2

У меня есть проект структурированного таким образом ...Импорт не найден при запуске скрипта вне Pycharm?

импортирует main.py скриптов из вложенных папок, как так:

from controllers.available_balances_controller import available_balances_controller 

подпапка

  • модель
  • просмотров
  • контроллеров

При запуске main.py в Pycharm работает поиск.

Когда я пытаюсь запустить в терминале я получаю ошибки импорта:

Traceback (most recent call last): 
    File "main.py", line 6, in <module> 
    from controllers.available_balances_controller import available_balances_controller 
ImportError: No module named controllers.available_balances_controller 

Могу ли я импортирующие скрипты неправильно в main.py?

Каков правильный способ импорта?

+0

Любой шанс ваш терминал использует другой Python, чем то, что вы настроили для PyCharm? Или, возможно, вы не используете терминал Python из каталога проекта? –

+0

Я использую команду терминала python3 + имя сценария в каталоге проекта. Pycharm настроен на 3,5. Когда я добавил пустой __init__.py во все папки, он нашел модули проекта. Но теперь он не находит пакеты сайтов, которые я импортировал в интерпретаторе Pycharms. Нужно ли где-то указать их в __init__.py? – Emily

ответ

2

Попробуйте запустить сценарий с флагом -m:

$ python -m main 

Это означает, что вы используете свой main.py в виде модуль внутри питона пакета, а не как простой сценарий. PyCharm упрощает работу, создавая проект. Когда вы находитесь в терминале, вам нужно указать его самостоятельно. Вам не нужны файлы __init__.py внутри ваших каталогов в Python3.

Отъезд:

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