Django迁移报错:No module named 'psycop'及数据库NAME配置疑问
问题解决步骤
1. 修复"No module named 'psycop'"报错
这个报错是因为依赖名称拼写偏差,Django连接PostgreSQL需要的是psycopg2模块,按以下方式排查修复:
- 执行安装命令:
pip install psycopg2-binary(预编译版本,无需额外编译依赖,更易安装) - 若要安装标准
psycopg2,需先在系统层面安装PostgreSQL开发库(比如Ubuntu用apt install libpq-dev,CentOS用yum install postgresql-devel),再执行pip install psycopg2
2. 修正settings.py中的DATABASES配置
你当前的NAME配置完全错误,PostgreSQL是服务型数据库,并非SQLite这类文件型数据库,NAME需要填写的是你在PostgreSQL中手动创建的数据库名称,而非文件路径。正确配置示例如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'your_db_name', # 替换为你创建的PostgreSQL数据库名称 'USER': 'your_postgres_user', # 默认用户为postgres,按实际情况修改 'PASSWORD': 'your_postgres_password', 'HOST': 'localhost', # 本地数据库服务填localhost,远程则填对应IP 'PORT': '5432', # PostgreSQL默认端口,修改过则对应调整 } }
- 前置要求:先通过PostgreSQL命令行或图形工具创建目标数据库,比如执行
createdb your_db_name(需用postgres用户或有权限的账号执行)
3. 验证修复效果
重新执行数据库迁移命令:
python manage.py makemigrations python manage.py migrate
启动开发服务器后,测试登录页面是否恢复正常。
内容的提问来源于stack exchange,提问作者DanielFBest
相关产品推荐
相关产品推荐

