前言
本文主要用于记录一次自己在django
项目中配置和使用PostgreSQL
的过程,同时记录在这个过程中出现的一些问题
和解决方案
。
项目环境说明
服务器操作系统:CentOS Linux 7 (Core)
Django版本:1.10.1
python版本:2.7.5
本次记录过程中的操作均基于上面描述的环境和软件版本
第一步: 配置settings
在django
项目的主app
中找到项目的settings.py
文件,找到关于Database
的设置。
django
默认使用的是sqlite3
数据库,所以我们先将默认的两行配置注释,然后添加上关于postgreSQL
的配置。
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '' # 数据库名称
'USER': '' # 登录数据库用户名
'PASSWORD': '', # 登录数据库密码
'HOST': '' # 数据库服务器的主机地址
'PORT': '' # 数据库服务的端口号
}
第二步:安装psycopg2
安装psycopg2
的命令为:pip install psycopg2
。
本次我在执行该命令后出现了下面这样的错误:
错误指出了缺少Python.h
这个文件,并且提示:It appears you are missing some prerequisite to build the package from source
。
在往下看错误信息为:
You may install a binary package by installing 'psycopg2-binary' from PyPI. If you want to install psycopg2 from source, please install the packages required for the build and try again.
大致意思就是说使用pip
这种方式安装psycopg2
缺少某些必要的包(比如Pythoh.h
),并建议安装二进制包。先抛开它的这些提示,看到后面的提示:For further information please check the 'doc/src/install.rst' file (also at <https://www.psycopg.org/docs/install.html>)
。
接着我就打开了https://www.psycopg.org/docs/install.html
这个页面,仔细去通读这个页面的如下部分内容:
它很明确的告诉我们使用pip
安装psycopg2
必须满足那些条件,其中第二条就明确说明需要依赖Python
头文件,如果没有就会出现类似:Python.h:没有那个文件或目录
这样的错误。
到这里基本上就知道怎么解决上面的错误了,所以接下来我们就需要根据错误提示信息,安装依赖的包。
安装python-dev
安装命令:yum install python-devel
centos
中的包名称叫python-devel
,而不是python-dev
执行yum install python-dev
会提示你没有可用软件包
安装libpq-dev
安装命令:yum install postgresql-devel
同样,
centos
中的包名称叫postgresql-devel
,而不是libpq-dev
安装psycopg2
最后一步在进行安装就可以成功安装了。
第三步:测试是否配置成功
那最后一步就是来测试一下我们是否成功配置好了PostgreSQL