为什么 django 在 django2.2 和 python 3.8 中找不到模块 psycopg2
why django not found module psycopg2 in django2.2 and python 3.8
我安装了 django 2.2.10 和 python 3.8 以及 psycopg2 2.8.4 但是当我尝试使用命令迁移时(python manage.py 迁移)遇到这个错误:
引发配置不当("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured:加载 psycopg2 模块时出错:没有名为 'psycopg2'
的模块
32 位的 psycopg2。我尝试了 Whosebug 中可用的任何解决方案,但此错误不会消失
settings.py 中的数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'seyyedh',
'PASSWORD' : '123456',
'HOST':'localhost',
'PORT' : '5432',
}
}
编辑:
抱歉,我没有阅读您的配置。
如果您使用的是 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',
}
}
如所见here。您可能不应该使用初始的 postgres 数据库(如 "NAME" 中所引用),而是为您的 django 项目创建一个新数据库。
初步回答:
您是否偶然使用了另一个 python 环境而不是为您的项目配置的环境?
例如,如果您为项目创建了一个虚拟环境,并在 IDE 中为 运行 应用程序等配置了该虚拟环境,但对于迁移调用,您使用的是 python 系统环境.
如果您打开用于迁移的 python 环境的交互式 shell,然后键入:
help('modules')
必须列出 psycopg2!
pip install psycopg2-binary
(或)
pip install psycopg2
<2.8 psycopg2 版本
(或)
sudo apt-get install python-psycopg2
我知道 psycopg2 安装在另一个虚拟环境上,而主虚拟环境 运行
所以我卸载了虚拟环境并解决了错误
我安装了 django 2.2.10 和 python 3.8 以及 psycopg2 2.8.4 但是当我尝试使用命令迁移时(python manage.py 迁移)遇到这个错误:
引发配置不当("Error loading psycopg2 module: %s" % e) django.core.exceptions.ImproperlyConfigured:加载 psycopg2 模块时出错:没有名为 'psycopg2'
的模块32 位的 psycopg2。我尝试了 Whosebug 中可用的任何解决方案,但此错误不会消失
settings.py 中的数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'seyyedh',
'PASSWORD' : '123456',
'HOST':'localhost',
'PORT' : '5432',
}
}
编辑: 抱歉,我没有阅读您的配置。 如果您使用的是 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',
}
}
如所见here。您可能不应该使用初始的 postgres 数据库(如 "NAME" 中所引用),而是为您的 django 项目创建一个新数据库。
初步回答: 您是否偶然使用了另一个 python 环境而不是为您的项目配置的环境?
例如,如果您为项目创建了一个虚拟环境,并在 IDE 中为 运行 应用程序等配置了该虚拟环境,但对于迁移调用,您使用的是 python 系统环境.
如果您打开用于迁移的 python 环境的交互式 shell,然后键入:
help('modules')
必须列出 psycopg2!
pip install psycopg2-binary
(或)
pip install psycopg2
<2.8 psycopg2 版本
(或)
sudo apt-get install python-psycopg2
我知道 psycopg2 安装在另一个虚拟环境上,而主虚拟环境 运行 所以我卸载了虚拟环境并解决了错误