wake-up-neo.com

So richten Sie die PostgreSQL-Datenbank in Django ein

Ich bin neu in Python und Django.

Ich konfiguriere ein Django-Projekt mit dem PostgreSQL-Datenbank-Engine-Backend. Ich erhalte jedoch Fehler bei den einzelnen Datenbankoperationen. Wenn ich beispielsweise manage.py syncdb ausführen, 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?

88
André

Sie müssen die psycopg2 Python-Bibliothek installieren.

Installation


Laden Sie http://initd.org/psycopg/ herunter und installieren Sie es unter Python PATH

Entpacken Sie das Archiv nach dem Herunterladen einfach und:

$ python setup.py install

Wenn Sie möchten, installieren Sie es entweder über easy_install oder pip .

(Ich ziehe es vor, pip ohne easy_install zu verwenden.)

  • $ easy_install psycopg2
  • $ pip install psycopg2

Aufbau


in einstellungen .py

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

- Weitere Installationsanweisungen finden Sie unter Download-Seite und Installationsseite .

185
Alireza Savand

Stellen Sie außerdem sicher, dass Sie das PostgreSQL-Entwicklungspaket installiert haben. __ Auf Ubuntu müssen Sie Folgendes tun:

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

Schritt für Schritt, den ich benutze:

  • Sudo apt-get install python-dev
  • Sudo apt-get install postgresql-server-dev-9.1
  • Sudo apt-get install python-psycopg2 - Oder Sudo pip installieren Sie psycopg2

Sie können ein Grafiktool für Manager-Datenbanken installieren und dann Folgendes tun: Sudo apt-get install postgresql pgadmin3 

Danach müssen Sie das Postgre-Benutzerkennwort ändern und dann Folgendes tun:

  • Sudo su
  • su postgres -c psql postgres
  • ALTER USER postgres MIT PASSWORT 'YourPassWordHere';
  • \ q

In meiner Datei settings.py mache ich:

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

Das mag etwas langwierig erscheinen, aber es hat für mich ohne Fehler funktioniert.

Installieren Sie zunächst phppgadmin vom Ubuntu Software Center.

Führen Sie dann diese Schritte im Terminal aus.

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

Starten Sie den Apache-Server

Sudo service Apache2 start

Führen Sie dies nun auch im Terminal aus, um die Apache-Datei zu bearbeiten.

Sudo gedit /etc/Apache2/Apache2.conf

Fügen Sie der geöffneten Datei die folgende Zeile hinzu:

Include /etc/Apache2/conf.d/phppgadmin

Laden Sie jetzt Apache neu. Terminal verwenden.

Sudo /etc/init.d/Apache2 reload

Nun müssen Sie eine neue Datenbank erstellen. Melden Sie sich als "postgres" -Benutzer an. Weiter im Terminal.

Sudo su - postgres

Falls Sie Probleme mit dem Kennwort von 'postgres' haben, können Sie es mit der Antwort hier https://stackoverflow.com/a/12721020/1990793 ändern und mit den Schritten fortfahren.

Erstellen Sie jetzt eine Datenbank

createdb <db_name>

Erstellen Sie nun einen neuen Benutzer, um sich später bei phppgadmin anzumelden, und geben Sie ein neues Kennwort ein.

createuser -P <new_user>

Jetzt ist Ihr Postgressql eingerichtet und Sie können zu:

http://localhost/phppgadmin/

und melden Sie sich mit dem neuen Benutzer an, den Sie erstellt haben, um die Datenbank anzuzeigen.

9
Jibu James

Sie können "psycopg" mit dem folgenden Befehl installieren:

# Sudo easy_install psycopg2

Alternativ können Sie pip verwenden:

# pip install psycopg2

easy_install und pip sind in ActivePython enthalten oder werden manuell von jeweiligenproject sites installiert.

Oder holen Sie sich einfach den vorinstallierten Windows-Installer .

6
Sandro Munda

Das unmittelbare Problem scheint zu sein, dass das Modul psycopg fehlt.

4
aptwebapps

Ich hatte das gleiche Problem auf Mac.

Die Lösung war, nur PIP zu verwenden, um alles zu installieren und einige Dinge zu berühren.

Installiere zuerst PIP von:https://pip.pypa.io/de/latest/

Dann möchten Sie sicherstellen, dass sich der Pfad zu pg_config in Ihrem -PFAD (echo $ PATH) befindet. Andernfalls können Sie Ihr bash_profile bearbeiten:

vi /Users/<user>/.bash_profile

und füge diese Zeile hinzu:

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

Wenn Sie nicht wissen, wo sich pg_config befindet, können Sie das Tool "locate" verwenden, aber vergewissern Sie sich, dass locate.db auf dem neuesten Stand ist (ich habe eine alte locate.db und nicht vorhandene Pfade verwendet).

Sudo /usr/libexec/locate.updatedb
locate pg_config

Installieren Sie dann Django (falls erforderlich) und psycopg2.

Sudo pip install Django
Sudo pip install psycopg2

Und dann in settings.py (localhost: defaultport)

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

Grüße

Wenn Sie Fedora 20, Django 1.6.5, postgresql 9.3. * Verwenden und das Modul psycopg2 benötigen, gehen Sie folgendermaßen vor:

yum install postgresql-devel
easy_install psycopg2

Wenn Sie wie ich sind, haben Sie möglicherweise Schwierigkeiten, die gut dokumentierte libpq-dev-RPM zu finden.

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

Jahr, das löst mein Problem . Nachdem Sie dies ausgeführt haben, tun Sie:

2
Gregory

Bitte beachten Sie, dass zur Installation von psycopg2 über pip oder setup.py Visual Studio 2008 erforderlich ist (genauer gesagt die ausführbare Datei vcvarsall.bat). Wenn Sie nicht über Administratorrechte verfügen, um es zu installieren oder die entsprechende PATH-Variable unter Windows einzustellen, können Sie die bereits kompilierte Bibliothek von hier herunterladen.

0
Sergey Ivanov

Dies ist einer der sehr guten und schrittweisen Schritte zum Einrichten von PostgreSQL im Ubuntu-Server. Ich habe es mit Ubuntu 16.04 und seiner Arbeitsweise ausprobiert.

https://www.digitalocean.com/community/tutorials/how-to-use-postgresql-mit-ihre-Django-anwendung-on-ubuntu-14-04

0
sgauri