没有已知原因的明显循环导入

时间:2017-07-15 09:07:49

标签: python flask

我有一个导入错误,我过去两天一直试图解决,但仍然无法弄明白。

我正在构建REST API,并且已将我的源代码放入其标题为cruiser的模块中。我正在实施应用工厂模式。在__main__.py我有from cruiser import create_app, models, utilcreate_app中定义了__init__.py

以下是__init__.py的全部内容:

from flask import Flask
from . import config
from .external import init_app

# App factory function
def create_app(config_data):
    app = Flask('cruiser')
    app.config.from_object(config.DevelopmentConfig)
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    external.init_app(app)
    return app

使用python -m cruiser在本地运行我的应用程序时,应用程序返回以下错误:from cruiser import create_app, models, util - ModuleNotFoundError: No module named 'cruiser'(已编辑)

奇怪的是,在app.config.from_object(config.DevelopmentConfig)中注释__init__.py可以解决错误。这当然不是一个真正的解决方案,因为那时我的应用程序缺少重要的配置信息。此外,在此示例中,参数(config.DevelopmentConfig)是硬编码的,因为原始config_data已传递给它,但我更改了它以确保传递的数据不是实际问题。

我根本不了解__init__.py中的行与导入错误的关系。

后来我在我的代码中放了一堆print()来查看发生了什么。它们全部打印,甚至是实际create_app函数在__main__.py中运行后的那些。在这些全部打印到控制台之后,Flask重新启动了它的服务器(不确定是否应该发生这种情况),因为我在之后的restarting server... 的某些行报告了导入错误。< / p>

有人认为这是Flask开发服务器的一个问题。使用Flask CLI运行我的应用程序后,它启动时没有错误。但是我遇到了一个新问题:我的API的所有端点都返回404,即使控制台中没有报告错误(Flask的调试模式已打开)。

这是我的代码或服务器的问题吗?如果问题出在我的代码中,我该如何找到解决方案?如果这是服务器问题,我如何让代码在本地运行?至少可以说,不得不上传到实际的服务器进行测试。

0 个答案:

没有答案