Django部署uWSGI时出现‘no python application found’错误求解决
解决uWSGI部署Django时“no python application found”错误
先确认Django项目本身可运行
到包含manage.py的项目根目录,执行python manage.py runserver 0.0.0.0:8000,用浏览器访问测试。如果能正常打开页面,说明项目代码和依赖没问题,问题出在uWSGI配置环节。检查uWSGI.ini的核心配置项
打开你的conf/uwsgi.ini,确保以下关键配置正确:- chdir:必须指向包含
manage.py的项目根目录,比如项目放在/home/ubuntu/MyLife,就写chdir = /home/ubuntu/MyLife - module:格式为
Django项目目录名.wsgi:application,如果你的WSGI文件路径是MyLife/MyLife/wsgi.py,就写module = MyLife.wsgi:application - home:指定项目虚拟环境的绝对路径,比如
home = /home/ubuntu/MyLife/venv,确保uWSGI使用项目专属的Python环境
示例配置片段:
[uwsgi] chdir = /home/ubuntu/MyLife module = MyLife.wsgi:application home = /home/ubuntu/MyLife/venv # 其他基础配置 socket = /tmp/mylife.sock chmod-socket = 666 master = true processes = 2 vacuum = true- chdir:必须指向包含
查看uWSGI启动日志找细节
暂时去掉配置里的daemonize项,直接执行uwsgi --ini conf/uwsgi.ini,看控制台输出的日志。里面会有具体错误信息(比如模块找不到、依赖缺失),根据日志精准定位问题。验证uWSGI直接启动的可行性
跳过配置文件,用命令行直接启动测试:uwsgi --http :8000 --chdir /home/ubuntu/MyLife --module MyLife.wsgi:application --home /home/ubuntu/MyLife/venv然后访问
http://服务器IP:8000,如果能正常访问,说明配置文件里有错误,对比命令行参数和ini配置找差异。检查权限问题
确保uWSGI进程拥有项目目录和虚拟环境的读写权限,比如用chown -R www-data:www-data /home/ubuntu/MyLife(如果用www-data用户运行uWSGI),避免因权限不足导致无法读取文件。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

