web-dev-qa-db-fra.com

Il n'y a pas de module de base de données Sud 'south.db.postgresql_psycopg2' pour votre base de données

je suis nouveau à Django et je reçois cette erreur du sud mais je ne sais pas ce qui me manque. Je recherche des réponses mais je ne trouve rien.

There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.

Voici mes paramètres de base:

from unipath import Path

BASE_DIR = Path(__file__).ancestor(3)


SECRET_KEY = 'pp@iz7%bc7%+*11%usf7o@_e&)r2o&^3%zjse)n=6b&w^hem96'

Django_APPS = (
    'Django.contrib.admin',
    'Django.contrib.auth',
    'Django.contrib.contenttypes',
    'Django.contrib.sessions',
    'Django.contrib.messages',
    'Django.contrib.staticfiles',

)

THIRD_PARTY_APPS = (
    'south',

)

LOCAL_APPS = (


)


INSTALLED_APPS = Django_APPS + THIRD_PARTY_APPS + LOCAL_APPS


MIDDLEWARE_CLASSES = (
    'Django.contrib.sessions.middleware.SessionMiddleware',
    'Django.middleware.common.CommonMiddleware',
    'Django.middleware.csrf.CsrfViewMiddleware',
    'Django.contrib.auth.middleware.AuthenticationMiddleware',
    'Django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'Django.contrib.messages.middleware.MessageMiddleware',
    'Django.middleware.clickjacking.XFrameOptionsMiddleware',
    'Django.middleware.security.SecurityMiddleware',
)

ROOT_URLCONF = 'misite.urls'

WSGI_APPLICATION = 'misite.wsgi.application'

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

paramètres locaux:

from .base import *

TEMPLATE_DEBUG = True



ALLOWED_HOSTS = []

DEBUG = True

DEFAULT_FROM_EMAIL = '[email protected]'





# ----------------------------
    # POSTGRESQL

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'misite',
        'USER:': 'fernandoperez',
        'PASSWORD': 'admin',
        'Host':'localhost',
        'PORT':'5432',
    }
}

SOUTH_DATABASE_ADAPTERS = {
     'default': "south.db.postgresql_psycopg2"
 }

STATIC_URL = '/static/'

Est-ce que quelqu'un peut m'aider?? Merci beaucoup.

14
ferprez

Cela m'est arrivé lorsque j'ai mis à niveau divers modules à l'aide de pip et l'une des dépendances a été automatiquement mise à niveau Django vers la version actuelle (1.8). Vous pouvez simplement vérifier quelle est votre version actuelle = Django version (pip freeze) et s'il est de 1,8, rétrogradez-le à 1,6 ligne (pip install -U "Django<1.7").

8
kravietz

Essayez pip uninstall South, vous verrez alors si votre application est prête pour la version 1.8.

69
Papa Sax

Veuillez noter que South est maintenant en fin de vie en faveur du nouveau framework de migrations dans Django 1.7, qui est basé sur South mais avec des améliorations de conception significatives.

Pour plus de détails sur Django vous pouvez vous référer à la note de publication - https://docs.djangoproject.com/en/1.9/releases/1.7/#schema-migrations =

South ne fonctionnera pas avec Django 1.7; il ne prend en charge que les versions 1.4, 1.5 et 1.6.

9
WangST

Mais le problème est de savoir comment résoudre le problème en conservant Django 1.8 (dernière version). Je ne pense pas que le passage à 1.6 soit une bonne idée car Django 1.6 n'est plus une version sécurisée.

7
Lahiru

En utilisant Django 2.2.4 j'ai réalisé que "sud" était inclus dans une de mes applications tierces installées (socket_server). Mais pas sur le module, plutôt, dans les politiques de migration (peut-être le les gars qui ont créé le module utilisent toujours une ancienne version de Django.) Donc, changé le nom de 0001_inicial.py en 0001_inicial_old et Django n'a pas pu le trouver et en a généré une autre. -mesure (le socket doit s'installer sans)

0
Rafael