Search code examples
pythonpython-3.xdjangopython-importmanage.py

from django.core.management import execute_from_command_line not working


I am working on a bug project. Which is on Python 2.7, we are migrating to Python 3.9. I am getting import errors in manage.py during importfrom django.core.management import execute_from_command_line. For python 2.7 it is fine but for python 3 it is not working. I've created separate virtual environment for Python 3.

manage.py

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "best_buy_mall.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError:
        try:
            import django
        except ImportError:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            )
        raise
    execute_from_command_line(sys.argv)

dir tree: my_app/django_site/manage.py

my_app/venv (for python2)

my_app/v_env (for python3)


Solution

  • sudo pip install django --upgrade 
    

    I solved this by upgrading django. and if someone getting psycopg2 error, then run

    sudo pip install psycopg2 --upgrade 
    

    or install psycopg-binary

    sudo pip install psycopg2-binary --upgrade