提示:该错误出现的原因有很多种,并不只是uwsgi.ini没配置好,作者就在此处踩了坑。
最近打算部署flask项目,使用的组合是Flask+uwsgi+Nginx,先使用了最简单但的flask项目部署测试
文件路径为/opt/mycode/test/test.py
from flask import Flask
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
uwsgi配置如下
[uwsgi]
socket = :5000
chdir = /opt/mycode/test
wsgi-file =test.py
callable = app
processes = 4
threads = 2
stats = 0.0.0.0:9191
pidfile = uwsgi.pid
daemonize = logs/uwsgi.log
master = true
home=/opt/software/anaconda3/envs/wx_app
py-autoreload= 1
~
启动uwsgi后,访问项目,浏览器出现 Internal Server Error
检查uwsgi日志,发现日志提示问题
no python application found, check your startup logs for errors
于是尝试网上搜索各种解答,基本都是说uwsgi配置有问题,遂检查uwsgi.ini配置文件,尝试修改配置文件(其实配置文件并没问题)。
重新检查日志文件,发现还有一处之前没注意到的提示
ImportError: cannot import name ‘url_quote‘ from ‘werkzeug.urls‘
怀疑第一个错误是该错误引起的,这个错误的原因是因为Werkzeug库的版本较高,为3.0.1版本,需要降低Werkzeug的版本,于是将Werkzeug版本降为2.3.7,解决报错,同时解决
no python application found, check your startup logs for errors
最终解决问题,页面成功访问
因此,在遇到此错误时,检查uwsgi配置文件没有错误之后,还要检查自己的代码是否正确,以及库的版本是否匹配!!!