【问题标题】:Flask: ImportError: No module named folder.file烧瓶:ImportError:没有名为folder.file的模块
【发布时间】:2020-06-17 12:28:25
【问题描述】:

我有一个基于 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 不一样??

【问题讨论】:

    标签: python linux flask deployment server


    【解决方案1】:

    找到主要原因,虚拟环境没有激活。 使用这个. venv/bin/activate 激活了环境并修复了问题

    【讨论】: