如何在pytnon中正确导入模块?

时间:2020-09-30 14:02:12

标签: python python-import importerror

我有这个代码

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'

有人知道发生了什么事吗?

4 个答案:

答案 0 :(得分:1)

由于Forms.py与调用代码文件(views.py)位于同一文件夹中,因此您可以执行以下操作:

from . import forms

答案 1 :(得分:1)

在导入语句中,尝试:

from .forms import AddForm

比率:运行代码时,Python对目录敏感。在您调用server.py的顶级目录中没有名为forms的相邻模块。 .告诉server/admin/users/views.pyserver/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