Using Vagrant and VM with python-django & PostgreSQL
Question: I am trying to make a python-django project on a VM with Python/Django 2.7.6
and PostgreSQL 9.3.4 installed.

I am following [this](https://docs.djangoproject.com/en/1.6/intro/tutorial01/)
tutorial. After making
[changes](https://docs.djangoproject.com/en/1.6/ref/settings/#std:setting-
DATABASES) in settings.py for Postgres, when I do vagrant up and vagrant ssh,
and after python manage.py syncdb, it shows the following error.

    
    
     File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
     File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
     File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
     File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
    File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 280, in execute
    translation.activate('en-us')
    File "/usr/lib/python2.7/dist-packages/django/utils/translation/__init__.py", line 130, in activate
    return _trans.activate(language)
    File "/usr/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 188, in activate
    _active.value = translation(language)
    File "/usr/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 177, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)
    File "/usr/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 159, in _fetch
    app = import_module(appname)
    File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
    __import__(name)
    File "/usr/lib/python2.7/dist-packages/django/contrib/admin/__init__.py", line 6, in <module>
    from django.contrib.admin.sites import AdminSite, site
    File "/usr/lib/python2.7/dist-packages/django/contrib/admin/sites.py", line 4, in <module>
    from django.contrib.admin.forms import AdminAuthenticationForm
    File "/usr/lib/python2.7/dist-packages/django/contrib/admin/forms.py", line 6, in <module>
    from django.contrib.auth.forms import AuthenticationForm
    File "/usr/lib/python2.7/dist-packages/django/contrib/auth/forms.py", line 17, in <module>
    from django.contrib.auth.models import User
    File "/usr/lib/python2.7/dist-packages/django/contrib/auth/models.py", line 48, in <module>
    class Permission(models.Model):
    File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 96, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
    File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 264, in add_to_class
    value.contribute_to_class(cls, name)
    File "/usr/lib/python2.7/dist-packages/django/db/models/options.py", line 124, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
    File "/usr/lib/python2.7/dist-packages/django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
    File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 198, in __getitem__
    backend = load_backend(db['ENGINE'])
    File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 113, in load_backend
    return import_module('%s.base' % backend_name)
    File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
    __import__(name)
    File "/usr/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 25, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
    

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No
module named psycopg2

Also one more thing, I am able to run a project with SQLite on the VM.

What to do ?


Answer: `pyscopg2` is the name of the Python module normally used to interface with
Postgresql. You will need to install it.

You should be able to install it using Pip with `pip install psycopg2`. Pip
itself can usually be found using your package manager - on Ubuntu, for
instance, IIRC the package is called python-pip for Python 2 and python3-pip
for Python 3.

