我有这个代码
server.py
from admin.users.views import users_blueprint
server / admin / users / forms.py
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
class AddForm(FlaskForm):
pass
server / admin / users / views.py
from flask import Blueprint, render_template, redirect, url_for
from forms import AddForm
users_blueprint = Blueprint('users_blueprint', __name__, template_folder='templates/users')
运行server.py时,出现此错误:
Traceback (most recent call last):
File "server/server.py", line 6, in <module>
from admin.users.views import users_blueprint
File "server\admin\users\views.py", line 2, in <module>
from forms import AddForm
ModuleNotFoundError: No module named 'forms'
有人知道发生了什么事吗?
答案 0 :(得分:1)
由于Forms.py与调用代码文件(views.py)位于同一文件夹中,因此您可以执行以下操作:
from . import forms
答案 1 :(得分:1)
在导入语句中,尝试:
from .forms import AddForm
比率:运行代码时,Python对目录敏感。在您调用server.py的顶级目录中没有名为forms
的相邻模块。 .
告诉server/admin/users/views.py
从server/admin/users/forms.py
模块进行相邻导入。
答案 2 :(得分:1)
您可以添加
import sys
from pathlib import Path
sys.path.append(str(Path('.').absolute().parent))
在导入时检查父目录。
答案 3 :(得分:1)
导入相对于您启动python脚本时所在的目录而言。在这种情况下,您将需要导入表单:
res.send(...)
或使用类似的相对导入:
from admin.users.forms import AddForm