Background:
I am in the process of deploying a Django site and from my understanding and research, I needed to get a web server, a WSGI protocol interface to actually run said python code and ‘communicate’ with it, and lastly a reverse proxy server to tie the two together and pass HTTP requests through the pipeline to Django. (By virtue of my install method, mod_wsgi
is not an option thanks to EasyApache4 and cPanel so I cannot use the mod_wsgi
sockets method)
My problem:
I have organized an apache 2 hosting server and managed to install mod_proxy
and mod_proxy_uWSGI
using the EasyApache4 auto installer. From what I understand, now I need to set up the proxy system to relay HTTP requests through mod_proxy_uWSGI
which doubles up and also runs my Django site, however, I cannot access or configure mod_proxy_uWSGI
. When I try using the following style command (sorry, I don’t want my server URLs floating around the internet):
uwsgi --http :8000 --wsgi-file test.py
I get an error message:
bash: uwsgi: command not found
Am I missing something?
4
Answers
Thanks to a comment by [@dirkgroten]. To install UWSGI :
pip install uwsgi
After running
pip install uwsgi
, it’s possible thatuwsgi
was installed someplace not on yourPATH
. IE, in my case, it got installed to:I was able to fix this by adding a symlink:
(This may be a terrible idea. It may be a much better idea to use a
venv
, but I’m following a tutorial that specifically told me to avoid using avenv
.)In my case, using Docker, I found the binary to be located in:
Adding to @ArtOfWarfare’s answer, you can check where pip is installing your packages using this command.
In my case, it is
/Users/username/Library/Python/3.9/lib/python/site-packages
. So the uwsgi binary will be present in/Users/username/Library/Python/3.9/bin/
. Add this location to PATH and you should be good.