由于某些原因,当我尝试执行自定义命令时:
烧瓶create_user
每当尝试从src文件夹导入任何内容时,我都会收到错误消息:
seed_db中的文件“ /app/backend/flask_app/command.py”,第17行 导入src.models ModuleNotFoundError:没有名为“ src”的模块
/
__init__.py
command.py
run.py
src/
__init__.py
models/
__init__.py
user_model.py
command.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)
答案 0 :(得分:1)
这是导入模块的python方式的问题,与Flask命令无关。
由于 command.py 文件与您可以编写的 models 文件夹处于同一级别,所以:
import models.user_models as users
之后,您可以从用户参考中访问 user_models 模块:
import models.user_models as users
users.some_function_name()
答案 1 :(得分:0)
我找到了解决方法。
我必须删除根目录__init__.py
文件。
我从著名的Miguel Grinberg找到了这个答案:
https://github.com/miguelgrinberg/flasky/issues/310#issuecomment-340641813
这些文件(
__init__.py
)使python相信包的主目录在上面的一个目录中,因此该目录已添加到Python路径中。通常,您不希望顶层目录成为Python软件包,以便当前目录进入该路径。
__