How to set up a PostgreSQL database in Django

django, django-settings, postgresql, psycopg2, python

Solution

You need to install `psycopg2` Python library.

Installation

Download http://initd.org/psycopg/, then install it under Python PATH

After downloading, easily extract the tarball and:

$ python setup.py install

Or if you wish, install it by either easy_install or pip.

(I prefer to use pip over easy_install for no reason.)

- `$ easy_install psycopg2`

- `$ pip install psycopg2`

Configuration

in settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'db_name',                      
        'USER': 'db_user',
        'PASSWORD': 'db_user_password',
        'HOST': '',
        'PORT': 'db_port_number',
    }
}

- Other installation instructions can be found at download page and install page.

Problem

I'm new to Python and Django. I'm configuring a Django project using a PostgreSQL database engine backend, But I'm getting errors on each database operation. For example when I run `manage.py syncdb`, I'm getting: ``` C:\xampp\htdocs\djangodir>python manage.py syncdb Traceback (most recent call last): File "manage.py", line 11, in <module> execute_manager(settings) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 438, in execute_manager utility.execute() File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 379, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 261, in fetch_command klass = load_command_class(app_name, subcommand) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 67, in load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im port_module __import__(name) File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py" , line 7, in <module> from django.core.management.sql import custom_sql_for_model, emit_post_sync_ signal File "C:\Python27\lib\site-packages\django\core\management\sql.py", line 6, in <module> from django.db import models File "C:\Python27\lib\site-packages\django\db\__init__.py", line 77, in <modul e> connection = connections[DEFAULT_DB_ALIAS] File "C:\Python27\lib\site-packages\django\db\utils.py", line 92, in __getitem __ backend = load_backend(db['ENGINE']) File "C:\Python27\lib\site-packages\django\db\utils.py", line 33, in load_back end return import_module('.base', backend_name) File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im port_module __import__(name) File "C:\Python27\lib\site-packages\django\db\backends\postgresql\base.py", li ne 23, in <module> raise ImproperlyConfigured("Error loading psycopg module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No mo dule named psycopg ``` Can someone give me a clue on what is going on?

Original source

Related problems