笔者测试项目部署时,发现这个过程无法执行。
这里可能出现的问题比较多,可能是项目自身的原因,也可能是nginx 配置的原因,或许可能是uwsgi 的配置原因。
其实我在这三个中都遇到了问题,不要着急,要知道,你遇到的问题99%已经被别人碰到过了。
主要卡在了uwsgi的配置上,之前也没接触过uwsgi。
启动是很长的命令行,所以写入配置文件中启动。
而uwsgi支持很多的形式,比较流行的是ini或者xml.
笔者使用的是 ini
# myweb_uwsgi.ini file
[uwsgi]
# Django-related settings
socket =127.0.0.1:8000
# the base directory (full path)
chdir = /home/auto_ss/
# Django s wsgi file
wsgi-file = auto_ss/wsgi.py
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
threads = 2
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
stats =127.0.0.1:9191
#buffer-size=32768
#daemonize =/var/log/uwsgi.log
注意
# Django s wsgi file
wsgi-file = auto_ss/wsgi.py
这里很多的博客上写的是module = xxxx/wsgi.py
会报错
ImportError: Import by filename is not supported.
unable to load app 0 (mountpoint='') (callable not found or import error)
很多时候,错误信息只要我们去分析,搜索,问题就会慢慢解决。其实笔者在部署时这个错误第一天并没有解决。
原因在于,新接触一个东西本身就很多的新知识点,可能潜意识里会有点胆怯,遇到错误后,如果不能通过简单的搜索解决,就会变得浮躁,开始病急乱投医,甚至引入更多的错误。
这个错误明确的提示“通过文件名导入不被支持”只要找到配置文件名的部分,仔细思考,可能很快便会找到答案。
参考资料:https://stackoverflow.com/questions/18546299/setting-up-django-with-uwsgi-and-nginx