Ich bin neu in Python und Django.
Ich konfiguriere ein Django-Projekt mithilfe eines PostgreSQL-Datenbankmodul-Backends, erhalte jedoch bei jedem Datenbankvorgang Fehler. Wenn ich zum Beispiel renne manage.py syncdb
, bekomme ich:
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
Kann mir jemand einen Hinweis geben, was los ist?
Antworten:
Sie müssen die
psycopg2
Python-Bibliothek installieren .Installation
Laden Sie http://initd.org/psycopg/ herunter und installieren Sie es unter Python PATH
Extrahieren Sie nach dem Herunterladen einfach den Tarball und:
Wenn Sie möchten, installieren Sie es entweder mit easy_install oder pip .
( Ich bevorzuge es, ohne Grund pip gegenüber easy_install zu verwenden. )
$ easy_install psycopg2
$ pip install psycopg2
Aufbau
in den Einstellungen .py
- Weitere Installationsanweisungen finden Sie auf der Download- und Installationsseite .
quelle
psycopg2.OperationalError: fe_sendauth: no password supplied
wenn ich rennepython manage.py syncdb
. Ich habe einen zufälligen Tabellennamen und einen Benutzernamen festgelegt.django.db.backends.postgresql
nicht funktioniertpsycopg2
. Was funktioniert hat, ist dasdjango.db.backends.postgresql_psycopg2
Back-End und es wurde vermieden, die Portnummer anzugeben, da sie sich jedes Mal ändert, wenn Sie pgAdmin unter Windows startenStellen Sie außerdem sicher, dass Sie das PostgreSQL-Entwicklungspaket installiert haben. Unter Ubuntu müssen Sie Folgendes tun:
quelle
Schritt für Schritt, den ich benutze:
Möglicherweise möchten Sie ein Grafiktool installieren, um Ihre Datenbanken zu verwalten. Dazu haben Sie folgende Möglichkeiten:
Danach müssen Sie das Postgre-Benutzerkennwort ändern und dann Folgendes tun:
In Ihrer Datei settings.py tun Sie Folgendes:
Extra:
Wenn Sie die Datenbank über die Befehlszeile erstellen möchten, gehen Sie einfach wie folgt vor:
In Ihrer Datei settings.py tun Sie Folgendes:
quelle
Das mag etwas langwierig erscheinen, hat aber bei mir fehlerfrei funktioniert.
Installieren Sie zunächst phppgadmin vom Ubuntu Software Center.
Führen Sie dann diese Schritte im Terminal aus.
Starten Sie den Apache-Server
Führen Sie dies nun auch im Terminal aus, um die Apache-Datei zu bearbeiten.
Fügen Sie der geöffneten Datei die folgende Zeile hinzu:
Laden Sie nun Apache neu. Terminal verwenden.
Jetzt müssen Sie eine neue Datenbank erstellen. Melden Sie sich als 'postgres'-Benutzer an. Fahren Sie im Terminal fort.
Falls Sie Probleme mit dem Passwort von 'postgres' haben, können Sie es mit der Antwort hier ändern https://stackoverflow.com/a/12721020/1990793 und mit den Schritten fortfahren.
Erstellen Sie nun eine Datenbank
Erstellen Sie nun einen neuen Benutzer, um sich später bei phppgadmin anzumelden, und geben Sie ein neues Passwort ein.
Jetzt wurde Ihr postgressql eingerichtet und Sie können gehen zu:
und melden Sie sich mit dem neuen Benutzer an, den Sie erstellt haben, um die Datenbank anzuzeigen.
quelle
Sie können "psycopg" mit dem folgenden Befehl installieren:
Alternativ können Sie pip verwenden:
easy_install und pip sind in ActivePython enthalten oder werden manuell von den jeweiligen Projektstandorten installiert .
Oder holen Sie sich einfach das vorgefertigte Windows-Installationsprogramm .
quelle
sudo apt-get install python-psycopg2
wenn Sie sich auf einem Debian-System befinden und den Paketmanager anstelle von pip / easy_install verwenden möchten.Das unmittelbare Problem scheint zu sein, dass Sie das Psycopg- Modul vermissen .
quelle
Wenn Sie Fedora 20, Django 1.6.5, postgresql 9.3. * Verwenden und das psycopg2-Modul benötigen, gehen Sie folgendermaßen vor:
Wenn Sie wie ich sind, haben Sie möglicherweise Probleme, die gut dokumentierte libpq-dev-Drehzahl zu finden ... Das oben Gesagte hat gerade für mich funktioniert.
quelle
Ich hatte das gleiche Problem auf dem Mac .
Die Lösung bestand darin, nur PIP zu verwenden, um alles zu installieren und einige Dinge zu berühren.
Installieren Sie PIP zuerst von: https://pip.pypa.io/en/latest/
Dann möchten Sie sicherstellen, dass sich der Pfad zu pg_config in Ihrem PATH befindet (echo $ PATH). Andernfalls können Sie Ihr bash_profile bearbeiten:
und fügen Sie diese Zeile hinzu:
Wenn Sie nicht wissen, wo sich pg_config befindet, können Sie das Tool "lokalisieren" verwenden, aber stellen Sie sicher, dass Ihre Datei "find.db" auf dem neuesten Stand ist (ich habe eine alte Datei "ocate.db "verwendet und Pfade verwendet, die nicht vorhanden sind).
Installieren Sie dann Django (falls erforderlich) und psycopg2.
Und dann in settings.py (localhost: defaultport)
Grüße!
quelle
Jahr, das löst mein Problem. Führen Sie danach Folgendes aus: pip install psycopg2
quelle
Bitte beachten Sie, dass für die Installation von
psycopg2
via pip oder setup.py Visual Studio 2008 (genauer gesagt die ausführbare Datei vcvarsall.bat ) erforderlich ist . Wenn Sie keine Administratorrechte haben, um es zu installieren oder die entsprechende PATH-Variable unter Windows festzulegen, können Sie die bereits kompilierte Bibliothek von hier herunterladen .quelle
Dies ist einer der sehr guten und schrittweisen Prozesse, die auf dem
PostgreSQL
Ubuntu-Server eingerichtet werden müssen. Ich habe es mit versuchtUbuntu 16.04
und es funktioniert.https://www.digitalocean.com/community/tutorials/how-to-use-postgresql-with-your-django-application-on-ubuntu-14-04
quelle