Django连接数据库提示No module named 'psycopg2'如何解决
报错复现
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
解决方案
- 确认当前激活的虚拟环境与安装psycopg2的虚拟环境一致
执行pip list查看当前环境已安装包列表,确认存在psycopg2/psycopg2-binary条目。如果没有,在当前激活的虚拟环境中执行pip install psycopg2-binary,优先选择二进制版本可避免编译依赖问题。 - 检查IDE的Python解释器配置
如果你通过Pycharm、VSCode等IDE运行Django项目,确认IDE指定的项目Python解释器路径对应你安装了psycopg2的虚拟环境,而非系统全局Python。 - 修复版本兼容性问题
Python 3.10及以上版本可能和旧版psycopg2存在兼容问题,可先执行卸载命令:pip uninstall psycopg2 psycopg2-binary,再重新安装最新版二进制包:pip install psycopg2-binary。 - 安装系统级依赖(适用于Linux、macOS环境)
如果你需要安装源码编译版本的psycopg2,需要先安装对应系统的依赖库:Debian/Ubuntu系列:
sudo apt install libpq-dev python3-dev
CentOS/RHEL系列:sudo yum install postgresql-devel python3-devel
macOS:brew install postgresql
依赖安装完成后再重新安装psycopg2即可。 - 校验Django数据库配置
确认项目settings.py中的数据库ENGINE配置为django.db.backends.postgresql,无拼写错误。
内容的提问来源于stack exchange,提问作者Habeeb Albedalkareem
相关产品推荐
相关产品推荐

