Flask: ImportError: Нет модуля с именем folder.file - PullRequest
0 голосов
/ 17 июня 2020

У меня есть приложение flask, основанное на Atlantis Dashboard .

Оно отлично работает на Windows с помощью команды:

  • flask run --host=0.0.0.0 --port=5000.

Сейчас пытаюсь развернуть на сервере Linux, клонировал проект и пробовал запустить:

  • flask run
  • py -m app.app
  • waitress-serve --port=8001 run:app
  • Пытался изменить синтаксис импорта
  • .. еще 20 попыток

Но не могу заставить его работать! Я все время получаю сообщение об ошибке:

* Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Usage: flask run [OPTIONS]

Error: While importing "app", an ImportError was raised:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/var/www/project_x/app/__init__.py", line 21, in <module>
    app.config.from_object('app.configuration.Config')
  File "/usr/local/lib/python2.7/dist-packages/flask/config.py", line 174, in from_object
    obj = import_string(obj)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/utils.py", line 585, in import_string
    ImportStringError, ImportStringError(import_name, e), sys.exc_info()[2]
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/utils.py", line 576, in import_string
    module = __import__(module_name, globals(), locals(), [obj_name])
  File "/var/www/project_x/app/configuration.py", line 8, in <module>
    from secret.keys import SECRET
ImportStringError: import_string() failed for 'app.configuration.Config'. Possible reasons are:

- missing __init__.py in a package;
- package or module path not included in sys.path;
- duplicated package or module name taking precedence in sys.path;
- missing module, class, function or variable;

Debugged import:

- 'app' found in '/var/www/project_x/app/__init__.pyc'.
- 'app.configuration' not found.

Original exception:

ImportError: No module named secret.keys

Структура проекта:

project_x
- app
   - __pycache__
   - __init__.py
   - configuration.py
   - api.py
   - static
   - templates
   - secret
        - keys.py
- run.py

Что я сделал не так? а почему Linux отличается ??

1 Ответ

0 голосов
/ 30 июня 2020

Найдена основная причина, виртуальный env не активирован. Использование этого . venv/bin/activate активировало env и исправляло проблему

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