MENU

关于uwsgi启动Flask的py程序,报错ModuleNotFoundError: No module named 'app'

October 2, 2021 • linux

uwsgin.jpg
先简单介绍下uwsgi的几个日志文件,这有助于排查各类问题。
据我观察和我理解的,uwsgin提供的日志文件有这几个:
1.web空间目录下的uwsgin.log,这个会记录启动过程发生的日志,在启动过程中的报错可以到这里查看。
2.web空间目录下的./logs/error.log,这是访问过程中uwsgin将请求转换成程序处理,这个过程出现的错误,会出现在这里。
3.web空间目录下的./logs/access.log,uwsgin转化的访问日志。

我这次出现错误是启动过程的发生的,报错是没有找到XX模块。引发的原因其实很简单,但是最初解决这个问题时困扰了我很长时间。
由于配置Nginx + uwsgi是在网上找到不负责任的教程弄的,虽然uwsgin服务可以正常启动,但是问题百出,解决这些问题,让我对uwsgi有更深入的了解。好了言归正传,说说这次的问题。

在uwsgin启动时报错No module named xxx 那大概是uwsgin配置错了。直接上配置文件uwsgin.ini,咱们边看边说!

[uwsgi]
# uwsgi 启动时所使用的地址与端口 (需要在 nginx 配置匹配)

socket = :8001

#虚拟环境目录 (如果有)
#home = /root/.virtualenvs/env1

#项目目录
pythonpath = /XX/XX/XX/XXX/XXXX/    #**这里是重点,一定要写 程序所在的绝对路径。(如果web空间和程序目录不在一根目录下)**

#指向网站访问根目录
chdir = /data/www

#python启动程序文件
wsgi-file = %(pythonpath)webrun.py  #**当然,这里也一样,绝对路径。(如果web空间和程序目录不在一根目录下)****

#python程序内用于启动的application变量名
callable = app

#处理器数
processes = 2

#线程数
threads = 2
pidfile = uwsgi.pid
daemonize = uwsgi.log
python-autoreload=1
ome-prefix-spaced=webproc
#状态监测地址
stats = 127.0.0.1:9191

好了,这样就解决了,一个简单的配置问题。