7

I am trying to setup my server with a nginx to uwsgi to django stack, but I am having problems with the uwsgi part.

When I run uwsgi and pass in all the parameters on the command line, it works properly. My uwsgi call looks like this:

uwsgi --socket /tmp/uwsgi.sock --chdir ~/web/test.com --wsgi-file ~/web/test.com/store/wsgi.py --virtualenv ~/web/test.com/testenv --chmod-socket=666 --enable-threads

I then copied those parameters into an ini file that looks like this:

# django.ini file
[uwsgi]
master          = true 
socket          = /tmp/uwsgi.sock
chmod-socket    = 666
chdir           = /home/ubuntu/web/test.com
wsgi_file       = /home/ubuntu/web/test.com/store/wsgi.py
virtualenv      = /home/ubuntu/web/test.com/causumptionenv
vacuum          = true
enable-threads  = true

However, when I run uwsgi with the django.ini file, I get this output.

[uWSGI] getting INI configuration from django.ini
*** Starting uWSGI 1.9.11 (64bit) on [Fri May 31 14:52:44 2013] ***
compiled with version: 4.6.3 on 30 May 2013 15:40:11
os: Linux-3.2.0-40-virtual #64-Ubuntu SMP Mon Mar 25 21:42:18 UTC 2013
nodename: ip-10-245-64-211
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/ubuntu/web/test.com
detected binary path: /usr/local/bin/uwsgi
your processes number limit is 4594
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 2.7.3 (default, Aug  1 2012, 05:25:23)  [GCC 4.6.3]
Set PythonHome to /home/ubuntu/web/test.com/testenv
Python main interpreter initialized at 0xcb4dd0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145440 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: 15976)
spawned uWSGI worker 1 (pid: 15977, cores: 1)
--- no python application found, check your startup logs for errors ---

Most notable are the lines "no app loaded. going in full dynamic mode and no python application found, check your startup logs for errors

So my question is, whats the difference between passing the parameters on the command line and passing them through an ini file?

1
  • I ended up solving it by changing the 'wsgi_file' line to be 'module = store.wsgi:application'. Whats really strange is that the module parameter would not work when passing it on the command line.
    – OpIvy
    May 31, 2013 at 21:18

4 Answers 4

3

It 's wsgi-file not wsgi_file, command line options and file options are always the same

1
  • 1
    Well thats embarrassing. I guess this is the one time that copy/paste would have actually saved me.
    – OpIvy
    Jun 2, 2013 at 18:09
2

aptitude install uwsgi-plugin-python

and then restart uwsgi you will see the correct page.

1
  • worked for me, thanks.
    – SirSaleh
    Mar 17, 2020 at 11:11
2

Just to add to the overall confusion concerning uwsgi & django here is an ini file that works for me.

It works with http & http-socket but NOT socket.

it is designed to run with multiple settings files in a directory settings a'la two scoops of django multiple deployment files ( which is why I was testing)

so ---/velocity is the 'home' project directory where manage.py lives. /velocity/velocity/settings/dev_settings_chris_l.py is the actual settings file

THis all needs to be done because you need to be able to stear the correct settings files from outside of the django code and thus can't have lines setting DJANGO_SETTINGS_MODULE inside wsgi.py or indeed manage.py (use django-admin)

There is a lot of discussion about this sort of thing with various error messages reported. Hopefully althou' not entirely relevant to the question it might help someone.

Django 1.8

[uwsgi]
http-socket = 127.0.0.1:8004 
buffer-size = 32768
processes = 4
threads = 2
pythonpath = .. 
env = DJANGO_SETTINGS_MODULE=velocity.settings.dev_chris_l
module=velocity.wsgi:application
home = /home/chris/.virtualenvs/velocity 
plugin = python,http 
show-config 
stats =  127.0.0.1:9191
chdir = /home/chris/development/webfuels/velocity
1
  • Please don't "add to the overall confusion" :-) . Answers are always welcome though :p
    – HBruijn
    Nov 10, 2015 at 11:41
0

Check if u deleted any __init__.py file from the Django apps. As Django uses them to know which folders are apps, so they are kind of important.

4
  • you mean __init__.py - and yes this is a possible reason. Deleted is one possibility, forgotten to add the file to a module folder is the other (my case). Saved me a lot of time. Thank you.
    – Mario
    Mar 4, 2020 at 0:28
  • yes and that what I typed the problem is if you added double underscores before and after any word it will be BOLD like this bold and I forgot to add the code mark __bold__ Mar 13, 2020 at 7:25
  • Please vote up as my answer may help anyone who is missing or deleted these files by mistake. @Mario Mar 13, 2020 at 7:28
  • I already upvoted it.
    – Mario
    Mar 13, 2020 at 15:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .