#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.13. Определение
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.