I am trying to run a Django app using uwsgi. Most instructions I have found refer to a "--wsgi-file" and "--module" to specify the application, but "uwsgi" makes no mention of these options, and when I try and use them:
uwsgi -s /tmp/uwsgi.sock --master --module myapp.wsgi uwsgi: unrecognized option '--module' getopt_long() error
And
uwsgi -s /tmp/uwsgi.sock --master --wsgi-file myapp/wsgi.py uwsgi: unrecognized option '--wsgi-file' getopt_long() error
When I run it without either, I get:
uwsgi -s /tmp/uwsgi.sock --master *** Starting uWSGI 2.0.9 (64bit) on [Fri Jul 10 11:12:04 2015] *** compiled with version: 4.4.7 20120313 (Red Hat 4.4.7-11) on 23 April 2015 19:31:15 os: Linux-2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015 machine: x86_64 clock source: unix pcre jit disabled detected number of CPU cores: 2 detected binary path: /usr/sbin/uwsgi your processes number limit is 1024 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 UNIX address /tmp/uwsgi.sock fd 5 your server socket listen backlog is limited to 100 connections your mercy for graceful operations on workers is 60 seconds mapped 145536 bytes (142 KB) for 1 cores *** Operational MODE: single process *** *** no app loaded. going in full dynamic mode *** *** uWSGI is running in multiple interpreter mode *** spawned uWSGI master process (pid: 26597) spawned uWSGI worker 1 (pid: 26598, cores: 1)
Why aren't these options recognized? How am I supposed to specify the app to load? What kind of garbage software is this? Should I go back to using Gunicorn?
sock socket files in the /run/uwsgi directory. Check for the existence of the socket files within the /run/uwsgi directory by typing: sudo ls /run/uwsgi.
uWSGI presents a complete stack for networked/clustered web applications, implementing message/object passing, caching, RPC and process management. It is designed to be fully modular. This means that different plugins can be used in order to add compatibility with tons of different technology on top of the same core.
This means that the python plugin for uWSGI isn't installed or loaded. To verify run:
$ uwsgi --plugins-list
In general if you have build-essential python-dev etc., you can install via:
$ pip install uwsgi
On Debian or Ubuntu you can also install it via:
$ apt-get install uwsgi-plugin-python
On Linux Alpine you currently have to specify where it is:
$ apk add --update uwsgi-python $ uwsgi --plugins-dir /usr/lib/uwsgi/ --need-plugin python --plugins-list *** uWSGI loaded generic plugins *** *** uWSGI loaded request plugins *** 0: python ...
Alternatively you can specify its full path via:
$ uwsgi --plugin /usr/lib/uwsgi/python_plugin.so --plugins-list
Depending how you installed uwsgi also might also need to install the python plugin. e.g.
apt-get install uwsgi-plugin-python
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With