python - Flask:ModuleNotFoundError 使用 `flask run` 但能够使用 `python app.py` 运行应用程序

标签 python flask error-handling python-import

我可以使用 python app.py 运行我的 flask 应用程序但是,如果我尝试 flask runflask shell我收到以下错误:

(venv) C:\Users\Arrchana\PycharmProjects\ie-backend>flask run
 * Serving Flask app "app.py"
 * 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 "ie-backend.app", an ImportError was raised:

Traceback (most recent call last):
  File "c:\users\arrchana\pycharmprojects\ie-backend\venv\lib\site-packages\flask\cli.py", line 240, in locate_app
    __import__(module_name)
  File "C:\Users\Arrchana\PycharmProjects\ie-backend\app.py", line 3, in <module>
    from routes import api_dev
ModuleNotFoundError: No module named 'routes'

这是我的应用程序结构(缺少一些文件和模块):
ie-backend/
    appInits/
        __init__.py
        dp.py
    models/
        __init__.py
        user.py
    app.py
    config.py
    routes.py

我在 app.py 中导入配置没有问题,但是在尝试导入路由、appInits 和模型时出现 ModuleNotFoundError。我在运行 flask shell 时遇到同样的错误.

我的 app.py 文件如下所示:
from flask import Flask
from config import Config
from flask_script import Manager
from flask_migrate import MigrateCommand

from routes import api_dev
from appInits.db import db
from appInits import jwt

from models.user import UserModel

app = Flask(__name__)
app.config.from_object(Config)

app.register_blueprint(api_dev, url_prefix='/dev')

db.init_app(app)

migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

if __name__ == "__main__":
    app.run(debug=Config.DEBUG)


我在路由等中没有循环导入。我的 FLASK_APP=app.py。

最佳答案

添加 __init__.pyie-backend

添加 .在进口前

from .routes import api_dev
from .appInits.db import db
from .appInits import jwt

关于python - Flask:ModuleNotFoundError 使用 `flask run` 但能够使用 `python app.py` 运行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60012421/

相关文章:

python - 我的 python 脚本开始工作后服务器崩溃

python - 将响应发送回客户端时,AWS lambda 未完成执行

python - 如何使用 Flask 允许 POST 方法?

error-handling - 用于抽象资源分配/解除分配的惯用 Go

python - Google App Engine 中的 Django 表单无法找到模块 PIL

python - APIView 的 GET api 测试用例在 djangorestframework 中不起作用

python - 将 python ndarray 转换为 matlab 文件

python - GeoPoint 类型的对象不是 JSON 可序列化的

jquery - 如何处理从 php 到 jQuery ajax 错误处理程序的错误消息?

ruby-on-rails - 为 Stripe::Error 创建 Error 对象 (Ruby on Rails)