为什么Django在Django2.2和python 3.8中找不到模块psycopg2

2024-07-08 12:54:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我安装了django 2.2.10、python 3.8和psycopg2.8.4,但当我尝试使用命令(python manage.py migrate)进行迁移时,会遇到以下错误:

raise配置不正确(“加载psycopg2模块时出错:%s”%e) django.core.exceptions.ImpropertlyConfigured:加载psycopg2模块时出错:没有名为“psycopg2”的模块

32位的psycopg2。我尝试stackoverflow中可用的任何解决方案,但此错误不会消失

settings.py中的数据库:

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

Tags: 模块djangopycore命令manage错误migrate
3条回答

编辑: 对不起,我没有读你的配置。 如果您使用的是Postgresql,那么引擎设置应该是“django.db.backends.Postgresql”,而不是“django.db.backends.Postgresql\u psycopg2”:

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

如图所示here。您可能不应该使用初始的postgres DB(如“NAME”中所述),而是为django项目创建一个新的数据库

初始答案: 您是否碰巧使用了另一个python环境,而不是为您的项目配置的环境

例如,如果您为项目创建了虚拟环境,并在IDE中配置了用于运行应用程序等的虚拟环境,但对于迁移调用,您使用的是python系统环境

如果打开用于迁移的python环境的交互式shell,并键入:

help('modules')

必须列出psycopg2

pip install psycopg2-binary

(或)

pip install psycopg2for<;2.8 psycopg2版本

(或)

sudo apt-get install python-psycopg2

我知道在主虚拟环境运行时,psycopg2安装在另一个虚拟环境上 所以我取消了虚拟环境的安装并解决了错误

相关问题 更多 >

    热门问题