117 votes

Comment configurer la base de données PostgreSQL dans Django?

Je suis nouveau sur Python et Django.

Je configure un projet Django avec le moteur de base de données PostgreSQL, mais des erreurs se produisent lors de chaque opération de base de données, par exemple lorsque j'exécute manage.py syncdb , je reçois:

 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
 

Quelqu'un peut-il me donner un indice sur ce qui se passe?

225voto

Huckleberry Finn Points 1809

C'est même à mon problème, et j'ai trouvé!

Vous devez installer psycopg2 bibliothèque Python.

Installation


Télécharger http://initd.org/psycopg/, puis l'installer sous django et python PATH

Après le téléchargement, facilement extraire l'archive et:

python setup.py install

Ou si vous le souhaitez, [en ligne de commande|console] pour l'installer soit easy_install ou pip.

(Je préfère utiliser le pip sur easy_install pour aucune raison.)

  • easy_install psycopg2
  • pip install psycopg2

Configuration


dans les paramètres.py

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

- D'autres instructions d'installation peut être trouvé à la page de téléchargement et d' installation page.

31voto

Dennis Bunskoek Points 331

Assurez-vous également que le package de développement PostgreSQL est installé. Sur Ubuntu, vous devez faire quelque chose comme ceci:

 $ sudo apt-get install libpq-dev
 

27voto

Gpzim98 Points 21

Étape par étape que j'utilise:

  • sudo apt-get install python-dev
  • sudo apt-get install postgresql-server-dev-9.1
  • sudo apt-get install python-psycopg2 - Ou sudo pip install psycopg2

Vous pouvez installer un des outils graphiques pour le gestionnaire de la vôtre bases de données, puis de faire: sudo apt-get install postgresql pgadmin3

Après, vous devez modifier Postgre utilisateur mot de passe, puis faire:

  • sudo su
  • su-postgres -c psql postgres
  • ALTER USER postgres AVEC le MOT de passe 'YourPassWordHere';
  • \q

Dans mon settings.py fichier je fais:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': '',
        'PORT': '',
    }
}

7voto

Sandro Munda Points 12808

Vous pouvez installer "psycopg" avec la commande suivante:

# sudo easy_install psycopg2

Alternativement, vous pouvez utiliser pip :

# pip install psycopg2

easy_install et pip sont inclus avec ActivePython, ou installé manuellement à partir de l' respectives de projet sites.

Ou, tout simplement obtenir le pré-construit programme d'installation de Windows.

5voto

aptwebapps Points 922

Le problème immédiat semble être que vous manquez le module psycopg .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X