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?
Vous devez installer psycopg2
Python library.
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
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 .
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
Pas à pas que j'utilise:
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:
Dans mon fichier settings.py je fais:
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'postgres',
'PASSWORD': 'postgres',
'Host': '',
'PORT': '',
}
}
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.
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 .
Le problème immédiat semble être que vous manquez le module psycopg .
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.
$ Sudo apt-get install libpq-dev
Année, cela résoudra mon problème… .. Après avoir exécuté cela, faites: Pip install psycopg2
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 .
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.