web-dev-qa-db-fra.com

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. Cependant, des erreurs se produisent lors de chaque opération de base de données, par exemple lorsque je lance 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?

88
André

Vous devez installer psycopg2 Python library.

Installation


Téléchargez http://initd.org/psycopg/ , puis installez-le sous Python PATH

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

$ python setup.py install

Ou, si vous le souhaitez, installez-le à l’aide de easy_install ou pip .

(Je préfère utiliser pip plutôt que easy_install sans raison.)

  • $ easy_install psycopg2
  • $ pip install psycopg2

Configuration


dans settings .py

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

- Vous trouverez d’autres instructions d’installation sur page de téléchargement et page d’installation .

185
Alireza Savand

Assurez-vous également que le package de développement PostgreSQL est installé . Sous Ubuntu, vous devez procéder de la manière suivante:

$ Sudo apt-get install libpq-dev
27
Dennis Bunskoek

Pas à pas que j'utilise:

  • Sudo apt-get installez python-dev
  • Sudo apt-get installez postgresql-server-dev-9.1
  • Sudo apt-get install python-psycopg2 - Ou le pip Sudo installe psycopg2

Vous voudrez peut-être installer des outils graphiques pour gérer vos bases de données, puis procédez comme suit: Sudo apt-get install postgresql pgadmin3 

Après, vous devez changer le mot de passe de l'utilisateur Postgre, puis faire:

  • Sudo su
  • su postgres -c psql postgres
  • ALTER USER postgres AVEC PASSWORD 'YourPassWordHere';
  • \ q

Dans mon fichier settings.py je fais:

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'Host': '',
        'PORT': '',
    }
}
14
Gregory

Cela peut sembler un peu long, mais cela a fonctionné pour moi sans erreur.

Dans un premier temps, installez phppgadmin à partir du logiciel Ubuntu.

Puis exécutez ces étapes dans le terminal.

Sudo apt-get install libpq-dev python-dev
pip install psycopg2
Sudo apt-get install postgresql postgresql-contrib phppgadmin

Démarrer le serveur Apache

Sudo service Apache2 start

Maintenant, lancez aussi ceci dans le terminal, pour éditer le fichier Apache.

Sudo gedit /etc/Apache2/Apache2.conf

Ajoutez la ligne suivante au fichier ouvert:

Include /etc/Apache2/conf.d/phppgadmin

Rechargez maintenant Apache. Utilisez le terminal.

Sudo /etc/init.d/Apache2 reload

Maintenant, vous devrez créer une nouvelle base de données. Connectez-vous en tant qu'utilisateur 'postgres'. Continuer dans le terminal.

Sudo su - postgres

Si vous rencontrez des problèmes avec le mot de passe 'postgres', vous pouvez le modifier en utilisant la réponse ici https://stackoverflow.com/a/12721020/1990793 et continuer avec les étapes.

Maintenant, créez une base de données

createdb <db_name>

Créez maintenant un nouvel utilisateur pour vous connecter à phppgadmin ultérieurement, en fournissant un nouveau mot de passe.

createuser -P <new_user>

Votre postgressql est maintenant configuré et vous pouvez aller à:

http://localhost/phppgadmin/

et connectez-vous en utilisant le nouvel utilisateur que vous avez créé, afin de visualiser la base de données.

9
Jibu James

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és manuellement à partir des sites respectifs _ { projet .

Ou bien, procurez-vous simplement le programme d'installation Windows pré-construit .

6
Sandro Munda

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

4
aptwebapps

J'avais le même problème sur Mac.

La solution consistait à n'utiliser que PIP pour tout installer et toucher à certaines choses.

Installez d'abord le PIP à partir de:https://pip.pypa.io/en/latest/

Ensuite, vous voulez être sûr que si le chemin d'accès à pg_config est dans votre chemin CHEMIN (echo $ PATH), sinon vous pouvez éditer votre bash_profile:

vi /Users/<user>/.bash_profile

et ajoutez cette ligne:

export PATH=$PATH:/path/to/pg_config/bin

Si vous ne savez pas où se trouve pg_config, vous pouvez utiliser l'outil "localiser", mais assurez-vous que votre localisateur.db est à jour (j'utilisais un ancien localisateur.db et des chemins inexistants).

Sudo /usr/libexec/locate.updatedb
locate pg_config

Ensuite, installez Django (si nécessaire) et psycopg2.

Sudo pip install Django
Sudo pip install psycopg2

Et ensuite dans settings.py (localhost: defaultport)

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

Salue!

Si vous utilisez Fedora 20, Django 1.6.5, postgresql 9.3. * Et que vous avez besoin du module psycopg2, procédez comme suit:

yum install postgresql-devel
easy_install psycopg2

Si vous êtes comme moi, vous aurez peut-être de la difficulté à trouver le fichier rpm bien documenté libpq-dev ... Ce qui précède a fonctionné pour moi tout à l'heure.

3
MIke Kennedy
$ Sudo apt-get install libpq-dev

Année, cela résoudra mon problème… .. Après avoir exécuté cela, faites: Pip install psycopg2

2
Gregory

Veuillez noter que l'installation de psycopg2 via pip ou setup.py nécessite Visual Studio 2008 (plus précisément le fichier exécutable vcvarsall.bat). Si vous ne disposez pas des droits d'administrateur pour l'installer ou définir la variable PATH appropriée sous Windows, vous pouvez télécharger la bibliothèque déjà compilée à partir de ici .

0
Sergey Ivanov

C’est l’un des très bons processus étape par étape pour configurer PostgreSQL sur le serveur Ubuntu. Je l'ai essayé avec Ubuntu 16.04 et son fonctionnement.

http://www.digitalocean.com/community/tutorials/how-to-use-postgresql-with-your-Django-application-on-ubuntu-14-04

0
sgauri