Estoy implementando un proyecto de Django en un entorno de alojamiento de cPanel (NameCheap).

NameCheap actualmente solo admite PostgreSQL: 8.4.20.

Quiero usar PostgreSQL como mi backend de base de datos Django pero (ver requisito en negrita):

La actual psycopg2 admite:

  • Python versión 2.7
  • Python 3 versiones de 3.4 a 3.8
  • Versiones de servidor PostgreSQL de 7.4 a 12
  • Versión de biblioteca de cliente PostgreSQL de 9.1

Actualizar de 8.4.20 a> = 9.1 no es una opción en NameCheap (plan de alojamiento compartido).

Entonces, mi problema es que si intento hacer un pip install psycopg2, recibo un error:

./psycopg/psycopg.h:30:2: error: #error "Psycopg requires
PostgreSQL client library (libpq) >= 9.1

PORQUE PostgreSQL 8.4.20

Mi pregunta es:

¿Es psycopg2 el único módulo "aprobado" (?) / "oficial" / "compatible" para Django y PostgreSQL? Si no es así, ¿qué paquete alternativo de psycopg2 podría usar y cómo implementarlo en general?

1
Jarad 20 dic. 2019 a las 23:22

2 respuestas

La mejor respuesta

También intenté usar la base de datos PostgreSQL con Django en el alojamiento compartido de Namecheap. Al principio tuve problemas, pero ahora lo estoy usando sin ningún problema. Aquí está el procedimiento que puede seguir para usar la base de datos PostgreSQL con Django en el alojamiento compartido (aunque estoy usando psycopg2):

  1. Implemente su aplicación Django como de costumbre, excepto por la parte de la base de datos
  2. Crea una base de datos PostgreSQL. Anote su nombre y el nombre de usuario y contraseña del usuario que le agregó.
  3. Inicie el terminal en CPanel (también puede hacerlo a través de SSH), ingrese al entorno virtual y ejecute el siguiente comando para instalar psycopg2 (distribución binaria):
    pip install psycopg2-binary
  1. Ahora edite su settings.py y agregue las siguientes configuraciones para la base de datos:
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'database_name',
    'USER': 'database_username',
    'PASSWORD': 'database_password',
    'HOST': '127.0.0.1',
    'PORT': '5432',
}

Asegúrese de usar 127.0.0.1 en lugar de localhost

  1. Su base de datos ha sido configurada. Reinicie la aplicación python, haga migraciones, etc.

Estoy usando Python 3.7 y Django 3.0

También he escrito una publicación sobre esto en mi blog.

1
Umer Softwares 30 dic. 2019 a las 03:13

Puede instalar psycopg 2.6.2. Libpq> = 9.1 se requiere solo desde psycopg 2.7.

Prueba pip install "psycopg2<2.7".

1
piro 26 dic. 2019 a las 14:14