当前位置: 首页 > 面试题库 >

python flask在''中找不到'__main__'模块

金何平
2023-03-14
问题内容

大家好,我只是在学习烧瓶。我用pip来安装它。然后,当我运行此基本代码时,我得到一个错误。基本上,我看到它的工作,然后突然退出,并出现以下错误。这可能看起来是一些环境问题,但我不确定。前几天这很奇怪,现在却行不通。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'


if __name__ == '__main__':
    app.run(debug=True, port=8000, host='0.0.0.0')

 * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
 * Restarting with stat
/Library/Frameworks/Python.framework/Versions/3.4/bin/python3: can't find '__main__' module in ''

问题答案:

您说过,仅当您从交互式shell运行代码时,才会出现此问题。它是由werkzeug(wsgi服务器flask所基于的)功能引起的。

werkzeug如果更改了项目文件,则在调试模式下将自动重新启动服务器。每次检测到更改时,都会werkzeug重新启动最初启动的 文件
。甚至第一次启动都是通过 文件名 完成的!

但是在交互式外壳中根本没有文件,并且werkzeug认为您的文件被称为""(空字符串)。然后,它尝试运行该文件。由于某种原因,它也认为""指代包装。但是由于该软件包不存在__main__,因此它也不能具有模块,因此会出现错误。

您可以通过""直接运行来模拟该错误

python ""
# prints: can't find '__main__' module in ''

您可以通过将debug设置为False(也是默认值)来尝试禁用重新加载器:

app.run(debug=False, ...)

然后,它也应该在交互式会话中运行。但是,为什么要这么做呢?只需放入一个文件并运行它。



 类似资料:
  • 问题内容: 我有以下目录结构: 我尝试在从server.js导出的app.js中调用函数,我这样做: 但是得到错误: 我如何正确包含它? 谢谢。 问题答案: 该路径必须相对于您当前所在的文件。 用

  • 问题内容: 使用JDK / 11 的早期访问版本来编译基于Java-9且使用VM参数的现有代码 解决HTTP / 2客户端孵化器模块的问题 现在以编译错误结束 找不到模块:jdk.incubator.httpclient Java版本详细信息: 问题答案: 通过HTTP客户端API的标准化,现在可以删除已孵化的API。 现在,标准API的模块名称和软件包名称将 用作- 另外,将所有依赖类路径的应用

  • 在单元测试时,我得到了以下错误- 在对Run Configuration进行了一些调查之后,我们发现它在运行这个单元时使用了错误的模块(main.java.com.example.dexter.sunshine.app)。我们如何改变这个模块?

  • 我试图转换文本到语音在python使用gtts我使用3.7.4版本的python,但每当我使用gtts ModuleNotFoundError:没有名为'main.gtts'的模块;'main'不是一个包或有时它说gtts模块无法从. gtts导入//Traceback(最近的调用最后):File"C:/用户/DELL/Desktop/text2speech.py",第1行,从. gtts导入gT

  • 错误:光电控制器中存在FatalErrorException。php第17行:找不到类“App\Http\Controllers\photo” 此代码出现异常-

  • 我试图在遗留的objc代码中测试一些Swift类(@objc class)。我正在测试类中导入“UnitTests Swift.h”。 然后我得到了这个错误: 在自动生成的“UnitTests Swift.h”中找不到模块“MyApp” 这是什么里面的顶部部分的"UnitTests-Swift. h" 我清理了项目,检查了所有相关标志(“在Xcode单元测试中使用@testable时没有这样的模块