from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api', methods=['POST'])
def predict():
pass
#Some statements to predict something
if __name__ == '__main__':
print("Hello World")
app.run(host='0.0.0.0', debug=True)
当我以gunicorn -b 0.0.0.0 app:app
我没有看到打印语句。然而,当我以python app.py
的身份运行时,会打印出"Hello World"。应用程序运行,但不执行打印语句。知道是什么导致Gunicorn忽略main((中的内容吗?
当您以gunicorn -b 0.0.0.0 app:app
运行时,gunicorn将仅从app.py
文件导入应用程序。它将跳过if __name__ == '__main__'
块中的语句,因此您看不到print语句的输出。
但当您以python app.py
的身份运行时,if __name__ == '__main__'
块将成为入口点,因此执行print语句。
还要注意,if __name__ == '__main__'
中的app.run(host='0.0.0.0', debug=True)
行将启动开发服务器,而不是gunicorn服务器。
在此处附上类似问题的链接:app.run((之前的代码无法在gunicorn+flask 中运行