Не удается загрузить ссылку PostgreSQL на Django

#django #postgresql

#django #postgresql

Вопрос:

Я создал новый проект Django в своей виртуальной среде и установил psycopg2. Я изменил свой settings.py файл к следующему:

 DB_NAME = "neighborhood"
DB_USER = "django"
DB_PASSWORD = "password"
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': DB_NAME,
        'USER': DB_USER,
        'PASSWORD': DB_PASSWORD,
        'HOST': 'localhost',
        'PORT': '5432',
    }
}
  

Но когда я запускаю python manage.py migrate в своей виртуальной среде, я получаю следующую ошибку:
django.core.exceptions.Неправильно сконфигурировано: ошибка при загрузке модуля psycopg2: сбой загрузки DLL при импорте _psycopg: не удалось найти указанный модуль.
Я использую python v3.9 и PostgreSQL v13. Я проверил другие сообщения о переполнении стека, но ни один из них не ответил на мою проблему. Спасибо.

Комментарии:

1. Как вы установили psycopg2 ? Если psycopg2-binary тогда он еще не поддерживается на Python 3.9. Посмотрите на эту проблему .

2. Я только что использовал pip install psycopg2 . Однако, когда это не сработало, я также установил pip install psycopg2-binary . Теперь это мой requirements.txt файл: asgiref==3.3.0 Django==3.1.3 psycopg2==2.8.6 psycopg2-двоичный файл ==2.8.6 pytz==2020.4 sqlparse==0.4.1

3. Определение pip install psycopg2 не сработало? Он не устанавливался или устанавливался, а затем не работал? Если psycopg2 он установлен, я бы удалил psycopg2-binary и попробовал ваше соединение еще раз. Если это не удается, сообщите об ошибке в вашем вопросе выше.

4. Когда я сказал, что это не сработало, я имел в виду, что я получил ту же ошибку. Я только что удалил psycopg2-binary и до сих пор не повезло. Стоит ли удалять python 3.9 и устанавливать 3.8.6 вместо этого?

5. Да, я бы так и сделал. Похоже, это проблема с Appveyor / Windows psycopg2 , которая работает в Python 3.9 здесь, на компьютере Linux.

Ответ №1:

Удалить _psycopg2 из ENGINE :

 DB_NAME = "neighborhood"
DB_USER = "django"
DB_PASSWORD = "password"
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': DB_NAME,
        'USER': DB_USER,
        'PASSWORD': DB_PASSWORD,
        'HOST': 'localhost',
        'PORT': '5432',
    }
}
  

Комментарии:

1. После его удаления я все еще получаю сообщение об ошибке django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: DLL load failed while importing _psycopg: The specified module could not be found.