почему django не найден модуль psycopg2 в django2.2 и python 3.8 - PullRequest
0 голосов
/ 12 марта 2020

Я устанавливаю django 2.2.10 и python 3.8 и psycopg2 2.8.4, но когда я пытаюсь выполнить миграцию с помощью команды (python manage.py migrate), возникает ошибка:

повышение ImproperlyConfigured ( «Ошибка загрузки модуля psycopg2:% s»% e) django .core.exceptions.ImproperlyConfigured: Ошибка загрузки модуля psycopg2: ни один модуль с именем 'psycopg2'

psycopg2 в 32-разрядном режиме отсутствует. я пробую любое решение, которое доступно в stackoverflow, но эта ошибка не растворяет базы данных

в settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'seyyedh',
        'PASSWORD' : '123456',
        'HOST':'localhost',
        'PORT' : '5432',
    }
}

Ответы [ 3 ]

0 голосов
/ 12 марта 2020

pip install psycopg2-binary

(или)

pip install psycopg2 для <2.8 версий psycopg2 </p>

(или)

sudo apt-get install python-psycopg2

0 голосов
/ 20 марта 2020

Я понимаю, что psycopg2 установлен в другой виртуальной среде, в то время как основной виртуальный env работает, поэтому я не знаю, что виртуальная среда и ошибки устранены

0 голосов
/ 12 марта 2020

Редактировать: Извините, я не читал ваш конфиг. Если вы используете Postgresql, ваши настройки двигателя должны быть 'django .db.backends. postgresql', а не 'django .db.backends.postgresql_psycopg2':

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'seyyedh',
        'PASSWORD' : '123456',
        'HOST':'localhost',
        'PORT' : '5432',
    }
}

как видно здесь . Вам, вероятно, не следует использовать исходную базу данных postgres (как указано в "NAME"), но создать новую базу данных для проекта django.

Первоначальный ответ: Вы случайно использовать другую среду python, отличную от настроенной для вашего проекта?

Например, если вы создали виртуальную среду для своего проекта и настроили ее для запуска приложения et c. в вашей среде IDE, но для вызова миграции вы используете системную среду python.

Если вы открываете интерактивную оболочку для среды python, которую вы используете для миграции, и введите:

help('modules')

psycopg2 должен быть в списке!

...