Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting pkg_resources.DistributionNotFound: The 'supervisor==3.2.0' distribution was not found and is required by the application?

Getting an error while trying to run a gunicorn script through supervisor. The gunicorn script is running fine while running it directly. I am on ubuntu 16.04 supervisor version : Getting

pkg_resources.DistributionNotFound: The 'supervisor==3.2.0' distribution was not found and is required by the application

while running

sudo supervisorctl reread

my gunicron script to run Django application:

#!/bin/bash

NAME="applicant_screening"                                  # Name of the application
DJANGODIR=/home/applicant-screening-system/screening_backend             # Django project directory
#SOCKFILE=/home/track_ip/run/gunicorn.sock  # we will communicte using this unix socket
USER=root                                        # the user to run as
#GROUP=webapps                                     # the group to run as
NUM_WORKERS=3                                     # how many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE=screening_backend.settings             # which settings file should Django use
DJANGO_WSGI_MODULE=screening_backend.wsgi                     # WSGI module name

echo "Starting $NAME as `whoami`"

# Activate the virtual environment
cd $DJANGODIR
source /home/screen-env/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --user=$USER \
  --bind=0.0.0.0:8000 \
  --log-level=debug \
  --log-file=-
like image 800
Sidhartha Avatar asked Dec 23 '22 23:12

Sidhartha


1 Answers

This is the version mismatch between the requirement of supervisor and the python version installed. For this you need to:

  1. Install Python 2.7. (Since supervisor has a support for 2.* and the support for 3.* is still in development) https://askubuntu.com/a/981279

  2. Go to /usr/bin/supervisorctl file.

  3. Update the first line to

!/usr/bin/python2

to make the supervisor use the python 2.7 installed instead of python3.

Supervisorctl updated file

  1. Rerun the supervisorctl command.
like image 142
Raj Srujan Jalem Avatar answered Apr 05 '23 21:04

Raj Srujan Jalem