首页 > 解决方案 > 无法导入实现 Flask CLI 的应用程序模块

问题描述

出于某种原因,当我尝试执行我的自定义命令时:

烧瓶创建用户

每当我尝试从我的 src 文件夹中导入任何内容时都会收到错误消息:

文件“/app/backend/flask_app/command.py”,第 17 行,在 seed_db import src.models ModuleNotFoundError: No module named 'src'

/
    __init__.py
    command.py
    run.py
    src/
        __init__.py
        models/
            __init__.py
            user_model.py

命令.py

import click
from flask import Flask
from flask.cli import with_appcontext

app = Flask(__name__)


@app.cli.command()
@with_appcontext
def create_user():
    import src.models as models
    print("hello")

app.cli.add_command(seed_db)

标签: pythonflaskcommand-line-interface

解决方案


我找到了解决方案。

我不得不删除根目录__init__.py文件。

我从著名的 Miguel Grinberg 那里找到了这个答案:

https://github.com/miguelgrinberg/flasky/issues/310#issuecomment-340641813

这些文件 ( __init__.py) 使 python 认为包的主目录是上面的一个目录,因此这是添加到 Python 路径的目录。通常您希望您的顶级目录不是 Python 包,以便当前目录转到该路径。

__


推荐阅读