【问题标题】:Error: No module named '__main__.forms'; '__main__' is not a package in Python3错误:没有名为“__main__.forms”的模块; '__main__' 不是 Python3 中的包
【发布时间】:2019-12-06 08:30:58
【问题描述】:

我正在使用 Python 中的 Flask 构建一个 Web 应用程序。我的主文件名为:flaskblog.py,它有以下代码:

from flask import Flask, render_template

app = Flask(__name__)

** # I have some code here****


if __name__ == '__main__':
     app.run()

上面的代码运行良好并提供了所需的输出,我这里只有一个 .py 文件。

现在我创建了一个名为:forms.py 的新 .py 文件,其中包含 RegistrationForm 和 LoginForm 类,我尝试将这些类导入 flaskblog.py 文件,代码如下,

from flask import Flask, render_template
from .forms import RegistrationForm, LoginForm

app = Flask(__name__)

    ** # I have some code here****


if __name__ == '__main__':
      app.run()

上面的代码给了我错误:

ModuleNotFoundError: 没有名为 'ma​​in.forms' 的模块; 'ma​​in' 是 不是包裹

我是编程新手,我认为需要在if __name__ == '__main__': 中进行一些更改,但无法弄清楚。有人可以帮忙吗?

【问题讨论】:

  • 使用from forms import RegistrationForm, LoginForm。您在一个包中注意到,因此您不能使用相对点语法进行导入。
  • 删除点语法有效,谢谢。

标签: python flask python-import


【解决方案1】:

欢迎来到 SO。首先我推荐阅读这个链接:https://realpython.com/python-modules-packages/,因为它解释了 Python 模块和包是如何工作的。

如果你改变,你应该能够解决:

from .forms import RegistrationForm, LoginForm

到:

from forms import RegistrationForm, LoginForm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 2022-10-18
    • 2020-12-30
    • 2019-06-18
    • 2020-04-08
    • 2021-06-12
    • 1970-01-01
    相关资源
    最近更新 更多