0

I am writing some flask program. To deploy it on nginx, I am using uwsgi to do it.

First the flask program will have some code like:

app,host,port = myFun()

Then I have a wsgi config file named api.ini, the content like below (I elimited some infor):

chdir = ../../bin/

wsgi-file = api_uwsgi

The api_uwsgi is my python file generating app

After this I use command line like below to run uwsgi

uwsgi --ini apid.ini

But the problem is if the uwsig is installed by yum. The log is like below:

*** Starting uWSGI 2.0.12 (64bit) on [Mon Apr 11 13:57:30 2016] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-4) on 02 January 2016 19:52:54
os: Linux-3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016
nodename: ES01
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 8
current working directory: /opt/flow/etc/uwsgi
detected binary path: /usr/sbin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
chdir() to ../../bin/
your processes number limit is 63466
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:8001 fd 3
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 518400 bytes (506 KB) for 16 cores
*** Operational MODE: preforking+threaded ***
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 28611)
spawned uWSGI worker 1 (pid: 28615, cores: 4)
spawned uWSGI worker 2 (pid: 28618, cores: 4)
spawned uWSGI worker 3 (pid: 28622, cores: 4)
spawned uWSGI worker 4 (pid: 28624, cores: 4)
*** Stats server enabled on 127.0.0.1:9191 fd: 15 ***

No app loaded!

Use pip install uwsgi, it will be fine and the version of uwsgi is the same. Why?

Kramer Li
  • 2,284
  • 5
  • 27
  • 55

1 Answers1

0

The difference is that when one installs from yum, apt or whatever package manager one uses, the distribution's uwsgi package is fully modular, so it won't install plugins for python. But installing from pip, it does that for python, since it is python's package manager after all!

If you install from yum (yum install uwsgi) to get it work, you also need to install the python plugin:

yum install uwsgi-plugin-python

and then in your uwsgi command, you should pass --plugin=python

RoozyGPLFX
  • 126
  • 1
  • 7